parlov-analysis 0.7.0

Analysis engine trait and signal detection for parlov.
Documentation
use super::*;

// -- Confirmed / Medium (strong patterns, base_confidence 85-92) --

#[test]
fn forbidden_vs_not_found() {
    assert_pattern(
        403,
        404,
        OracleVerdict::Confirmed,
        Some(Severity::Medium),
        Some("Authorization-based differential"),
        true,
        Some("RFC 9110 §15.5.4"),
    );
}

#[test]
fn ok_vs_not_found() {
    assert_pattern(
        200,
        404,
        OracleVerdict::Confirmed,
        Some(Severity::Medium),
        Some("Direct access differential"),
        true,
        Some("RFC 9110 §15.3.1"),
    );
}

#[test]
fn unauthorized_vs_not_found() {
    assert_pattern(
        401,
        404,
        OracleVerdict::Confirmed,
        Some(Severity::Medium),
        Some("Authentication-based differential"),
        true,
        Some("RFC 9110 §15.5.2"),
    );
}

#[test]
fn conflict_vs_created() {
    assert_pattern(
        409,
        201,
        OracleVerdict::Confirmed,
        Some(Severity::Medium),
        Some("Conflict-based creation differential"),
        true,
        Some("RFC 9110 §15.5.10"),
    );
}

#[test]
fn conflict_vs_ok() {
    assert_pattern(
        409,
        200,
        OracleVerdict::Confirmed,
        Some(Severity::Medium),
        Some("Conflict-based creation differential"),
        true,
        Some("RFC 9110 §15.5.10"),
    );
}

#[test]
fn conflict_vs_see_other() {
    assert_pattern(
        409,
        303,
        OracleVerdict::Confirmed,
        Some(Severity::Medium),
        Some("Conflict-based creation differential"),
        true,
        Some("RFC 9110 §15.5.10"),
    );
}

#[test]
fn conflict_vs_accepted() {
    assert_pattern(
        409,
        202,
        OracleVerdict::Confirmed,
        Some(Severity::Medium),
        Some("Conflict-based creation differential"),
        true,
        Some("RFC 9110 §15.5.10"),
    );
}

#[test]
fn partial_content_vs_not_found() {
    assert_pattern(
        206,
        404,
        OracleVerdict::Confirmed,
        Some(Severity::Medium),
        Some("Range-request differential"),
        true,
        Some("RFC 9110 §15.3.7"),
    );
}