mirror of
https://github.com/Michele-M-Media/HYPERHEN.git
synced 2026-10-23 09:02:25 -05:00
70 lines
2.7 KiB
C++
70 lines
2.7 KiB
C++
#include "test_harness.h"
|
|
|
|
#include <onion/app_jailbreak_policy.hpp>
|
|
|
|
static int test_itemzflow_is_whitelisted(void) {
|
|
const onion::AppJailbreakAllowlist allowlist{};
|
|
TEST_ASSERT_TRUE(
|
|
onion::app_jailbreak::is_whitelisted("ITEM00001", allowlist));
|
|
TEST_ASSERT_STREQ("exact",
|
|
onion::app_jailbreak::whitelist_reason("ITEM00001",
|
|
allowlist));
|
|
return 0;
|
|
}
|
|
|
|
static int test_existing_policy_is_preserved(void) {
|
|
const onion::AppJailbreakAllowlist allowlist{};
|
|
TEST_ASSERT_TRUE(
|
|
onion::app_jailbreak::is_whitelisted("NPXS39041", allowlist));
|
|
TEST_ASSERT_TRUE(
|
|
onion::app_jailbreak::is_whitelisted("PKGI13337", allowlist));
|
|
TEST_ASSERT_TRUE(
|
|
onion::app_jailbreak::is_whitelisted("PKGI12345", allowlist));
|
|
TEST_ASSERT_TRUE(
|
|
onion::app_jailbreak::is_whitelisted("TOOL00001", allowlist));
|
|
TEST_ASSERT_TRUE(
|
|
onion::app_jailbreak::is_whitelisted("LAPY12345", allowlist));
|
|
TEST_ASSERT_TRUE(
|
|
!onion::app_jailbreak::is_whitelisted("CUSA12345", allowlist));
|
|
TEST_ASSERT_STREQ("prefix", onion::app_jailbreak::whitelist_reason(
|
|
"LAPY12345", allowlist));
|
|
TEST_ASSERT_STREQ("none",
|
|
onion::app_jailbreak::whitelist_reason("CUSA12345",
|
|
allowlist));
|
|
/* Prefix matching must not turn into an unanchored substring match. */
|
|
TEST_ASSERT_TRUE(
|
|
!onion::app_jailbreak::is_whitelisted("XLAPY1234", allowlist));
|
|
return 0;
|
|
}
|
|
|
|
static int test_configured_policy_replaces_defaults(void) {
|
|
onion::AppJailbreakAllowlist allowlist{};
|
|
allowlist.exact_title_ids = {};
|
|
allowlist.exact_title_ids[0] = "CUSA12345";
|
|
allowlist.exact_title_id_count = 1;
|
|
allowlist.title_id_prefixes = {};
|
|
allowlist.title_id_prefixes[0] = "ABCD";
|
|
allowlist.title_id_prefix_count = 1;
|
|
|
|
TEST_ASSERT_TRUE(
|
|
onion::app_jailbreak::is_whitelisted("CUSA12345", allowlist));
|
|
TEST_ASSERT_TRUE(
|
|
onion::app_jailbreak::is_whitelisted("ABCD00001", allowlist));
|
|
TEST_ASSERT_TRUE(
|
|
!onion::app_jailbreak::is_whitelisted("ITEM00001", allowlist));
|
|
TEST_ASSERT_TRUE(
|
|
!onion::app_jailbreak::is_whitelisted("LAPY12345", allowlist));
|
|
return 0;
|
|
}
|
|
|
|
extern "C" int test_app_jailbreak_policy_suite(void) {
|
|
int failures = 0;
|
|
failures += onion_test_run("app_jailbreak.itemzflow_whitelisted",
|
|
test_itemzflow_is_whitelisted);
|
|
failures += onion_test_run("app_jailbreak.existing_policy",
|
|
test_existing_policy_is_preserved);
|
|
failures += onion_test_run("app_jailbreak.configured_policy",
|
|
test_configured_policy_replaces_defaults);
|
|
return failures;
|
|
}
|