Files
onionHEN/source/util/tests/test_onpress_policy.cpp

79 lines
3.5 KiB
C++

/* Host tests for page-scoped ShellUI OnPress ownership (no PS5/Mono). */
#include "test_harness.h"
#include "onpress_policy.hpp"
using toolbox::OnPressDomain;
using toolbox::Page;
static int test_stock_package_installer_is_passthrough(void) {
Page active = Page::DebugSettings;
active = toolbox::active_page_after_resource(
active, Page::None, "PkgInstaller/data/pkginstaller.xml");
TEST_ASSERT_TRUE(active == Page::None);
TEST_ASSERT_TRUE(!toolbox::toolbox_owns_settings_page(active));
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(active) ==
OnPressDomain::PassThrough);
return 0;
}
static int test_unrelated_resource_keeps_toolbox_ownership(void) {
Page active = toolbox::active_page_after_resource(
Page::DebugSettings, Page::None, "PkgInstaller/assets/icon.png");
TEST_ASSERT_TRUE(active == Page::DebugSettings);
TEST_ASSERT_TRUE(toolbox::toolbox_owns_settings_page(active));
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(active) ==
OnPressDomain::Root);
return 0;
}
static int test_page_domain_matrix(void) {
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::None) ==
OnPressDomain::PassThrough);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::DebugSettings) ==
OnPressDomain::Root);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::Payloads) ==
OnPressDomain::Payloads);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::PayloadConfig) ==
OnPressDomain::PayloadConfig);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::OverlayMetrics) ==
OnPressDomain::Root);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::OverlayMetricConfig) ==
OnPressDomain::Root);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::AutoPayloads) ==
OnPressDomain::AutoPayloads);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::Cheats) ==
OnPressDomain::Cheats);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::Account) ==
OnPressDomain::Account);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::CheatProgress) ==
OnPressDomain::Progress);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::PluginProgress) ==
OnPressDomain::Progress);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::SuperuserPass) ==
OnPressDomain::PassThrough);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::RedirectOgDebug) ==
OnPressDomain::PassThrough);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::Plugins) ==
OnPressDomain::Plugins);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::PluginConfig) ==
OnPressDomain::PluginConfig);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::Sprx) ==
OnPressDomain::Sprx);
TEST_ASSERT_TRUE(toolbox::onpress_domain_for_page(Page::SprxConfig) ==
OnPressDomain::Sprx);
return 0;
}
extern "C" int test_onpress_policy_suite(void) {
int fails = 0;
fails += onion_test_run("onpress.stock_pkg_passthrough",
test_stock_package_installer_is_passthrough);
fails += onion_test_run("onpress.ignore_unrelated_resource",
test_unrelated_resource_keeps_toolbox_ownership);
fails += onion_test_run("onpress.page_domain_matrix", test_page_domain_matrix);
return fails;
}