From 0d8e6478a06ae832ff4bf45b331d617fad3c3f79 Mon Sep 17 00:00:00 2001 From: N2614 Date: Wed, 9 Apr 2014 08:22:11 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=A2=E3=82=AB=E3=82=A6=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=82=B5=E3=83=AB=E3=83=99=E3=83=BC=E3=82=B8=E6=99=82=E3=81=AE?= =?UTF-8?q?cfg=E3=83=95=E3=83=A9=E3=82=B0=E8=A8=AD=E5=AE=9A=E3=81=AE?= =?UTF-8?q?=E5=88=A4=E5=AE=9A=E9=83=A8=E5=88=86=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@781 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../sources/ConsoleRestore/AgeChecker.cpp | 67 +++++++++++++++++++ .../sources/ConsoleRestore/AgeChecker.h | 42 ++++++++++++ .../tests/googletest/AgeChecker/OMakefile | 23 +++++++ .../googletest/AgeChecker/testAgeChecker.cpp | 59 ++++++++++++++++ 4 files changed, 191 insertions(+) create mode 100644 trunk/ConsoleDataMigration/sources/ConsoleRestore/AgeChecker.cpp create mode 100644 trunk/ConsoleDataMigration/sources/ConsoleRestore/AgeChecker.h create mode 100644 trunk/ConsoleDataMigration/sources/tests/googletest/AgeChecker/OMakefile create mode 100644 trunk/ConsoleDataMigration/sources/tests/googletest/AgeChecker/testAgeChecker.cpp diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/AgeChecker.cpp b/trunk/ConsoleDataMigration/sources/ConsoleRestore/AgeChecker.cpp new file mode 100644 index 0000000..2ad4181 --- /dev/null +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/AgeChecker.cpp @@ -0,0 +1,67 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: AgeChecker.cpp + + Copyright (C)2014 Nintendo Co., Ltd. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include "AgeChecker.h" + +using namespace nn::cfg::CTR; + +namespace ConsoleRestore +{ + +AgeChecker::AgeChecker() +{ + // TODO 自動生成されたコンストラクター・スタブ + +} + +AgeChecker::~AgeChecker() +{ + // TODO Auto-generated destructor stub +} + +bool AgeChecker::IsPinRestrictionRequired(u32 age, CfgRegionCode region, CfgCountryCode country) +{ + if (region == CFG_REGION_EUROPE) + { + switch (country) + { + case CFG_COUNTRY_AUSTRALIA: + case CFG_COUNTRY_NEW_ZEALAND: + return age < 18; + default: + return age < 13; + } + } + else if (region == CFG_REGION_AMERICA && (country == CFG_COUNTRY_UNITED_STATES || country == CFG_COUNTRY_CANADA)) + { + return age < 13; + } + + return false; +} + +bool AgeChecker::IsCoppaRequired(u32 age, nn::cfg::CTR::CfgRegionCode region, nn::cfg::CTR::CfgCountryCode country) +{ + if (region == CFG_REGION_AMERICA && country == CFG_COUNTRY_UNITED_STATES && age < 13) + { + return true; + } + else + { + return false; + } +} + +} /* namespace ConsoleRestore */ diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/AgeChecker.h b/trunk/ConsoleDataMigration/sources/ConsoleRestore/AgeChecker.h new file mode 100644 index 0000000..e7c31e0 --- /dev/null +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/AgeChecker.h @@ -0,0 +1,42 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: AgeChecker.h + + Copyright (C)2014 Nintendo Co., Ltd. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef AGECHECKER_H_ +#define AGECHECKER_H_ + +#if defined(__ARMCC_VERSION) +#include +#include +#else +#include "test_common.h" +#endif +#include +#include + +namespace ConsoleRestore +{ + +class AgeChecker +{ + +public: + AgeChecker(); + virtual ~AgeChecker(); + bool IsPinRestrictionRequired(u32 age, nn::cfg::CTR::CfgRegionCode region, nn::cfg::CTR::CfgCountryCode country); + bool IsCoppaRequired(u32 age, nn::cfg::CTR::CfgRegionCode region, nn::cfg::CTR::CfgCountryCode country); +}; + +} /* namespace ConsoleRestore */ +#endif /* AGECHECKER_H_ */ diff --git a/trunk/ConsoleDataMigration/sources/tests/googletest/AgeChecker/OMakefile b/trunk/ConsoleDataMigration/sources/tests/googletest/AgeChecker/OMakefile new file mode 100644 index 0000000..88dc89b --- /dev/null +++ b/trunk/ConsoleDataMigration/sources/tests/googletest/AgeChecker/OMakefile @@ -0,0 +1,23 @@ +INCLUDES[] += + ./ + ../common + ../../../ConsoleRestore + $(HORIZON_ROOT)/include + +TARGET = testAgeChecker +TEST_TARGET = AgeChecker + +SRC_FILES[] = + testAgeChecker + AgeChecker + +# テスト独自のスタブを使用する場合に定義する +#CXXFLAGS += -DPCTEST_USE_STUB + +# テストディレクトリ外にあるので独自ルールでビルド +$(TEST_TARGET)$(EXT_OBJ): ../../../ConsoleRestore/$(TEST_TARGET).cpp + $(CXX) $(CXXFLAGS) $(PREFIXED_INCLUDES) -c $< + +.DEFAULT: $(TEST_TARGET)$(EXT_OBJ) $(TARGET)$(EXE) + +include $(COMMON_BUILD) diff --git a/trunk/ConsoleDataMigration/sources/tests/googletest/AgeChecker/testAgeChecker.cpp b/trunk/ConsoleDataMigration/sources/tests/googletest/AgeChecker/testAgeChecker.cpp new file mode 100644 index 0000000..59393c7 --- /dev/null +++ b/trunk/ConsoleDataMigration/sources/tests/googletest/AgeChecker/testAgeChecker.cpp @@ -0,0 +1,59 @@ +#include + +#include "AgeChecker.h" + +TEST(testPin, A) +{ + ConsoleRestore::AgeChecker ac; + + // A-1 + ASSERT_TRUE(ac.IsPinRestrictionRequired(12, nn::cfg::CTR::CFG_REGION_AMERICA, nn::cfg::CTR::CFG_COUNTRY_UNITED_STATES)); + // A-2 + ASSERT_TRUE(ac.IsPinRestrictionRequired(12, nn::cfg::CTR::CFG_REGION_AMERICA, nn::cfg::CTR::CFG_COUNTRY_CANADA)); + // A-3 + ASSERT_TRUE(ac.IsPinRestrictionRequired(12, nn::cfg::CTR::CFG_REGION_EUROPE, nn::cfg::CTR::CFG_COUNTRY_UNITED_KINGDOM)); + // A-4 + ASSERT_TRUE(ac.IsPinRestrictionRequired(17, nn::cfg::CTR::CFG_REGION_EUROPE, nn::cfg::CTR::CFG_COUNTRY_AUSTRALIA)); + ASSERT_TRUE(ac.IsPinRestrictionRequired(17, nn::cfg::CTR::CFG_REGION_EUROPE, nn::cfg::CTR::CFG_COUNTRY_NEW_ZEALAND)); +} + +TEST(testPin, B) +{ + ConsoleRestore::AgeChecker ac; + + // B-1 + ASSERT_FALSE(ac.IsPinRestrictionRequired(13, nn::cfg::CTR::CFG_REGION_AMERICA, nn::cfg::CTR::CFG_COUNTRY_UNITED_STATES)); + // B-2 + ASSERT_FALSE(ac.IsPinRestrictionRequired(13, nn::cfg::CTR::CFG_REGION_AMERICA, nn::cfg::CTR::CFG_COUNTRY_CANADA)); + // B-3 + ASSERT_FALSE(ac.IsPinRestrictionRequired(13, nn::cfg::CTR::CFG_REGION_EUROPE, nn::cfg::CTR::CFG_COUNTRY_UNITED_KINGDOM)); + // B-4 + ASSERT_FALSE(ac.IsPinRestrictionRequired(18, nn::cfg::CTR::CFG_REGION_EUROPE, nn::cfg::CTR::CFG_COUNTRY_AUSTRALIA)); + ASSERT_FALSE(ac.IsPinRestrictionRequired(18, nn::cfg::CTR::CFG_REGION_EUROPE, nn::cfg::CTR::CFG_COUNTRY_NEW_ZEALAND)); +} + +TEST(testPin, C) +{ + ConsoleRestore::AgeChecker ac; + + // C-1 + ASSERT_FALSE(ac.IsPinRestrictionRequired(12, nn::cfg::CTR::CFG_REGION_JAPAN, nn::cfg::CTR::CFG_COUNTRY_JAPAN)); + // C-2 + ASSERT_FALSE(ac.IsPinRestrictionRequired(13, nn::cfg::CTR::CFG_REGION_JAPAN, nn::cfg::CTR::CFG_COUNTRY_JAPAN)); + // C-3 + ASSERT_FALSE(ac.IsPinRestrictionRequired(17, nn::cfg::CTR::CFG_REGION_JAPAN, nn::cfg::CTR::CFG_COUNTRY_JAPAN)); + // C-4 + ASSERT_FALSE(ac.IsPinRestrictionRequired(18, nn::cfg::CTR::CFG_REGION_JAPAN, nn::cfg::CTR::CFG_COUNTRY_JAPAN)); +} + +TEST(testCoppa, all) +{ + ConsoleRestore::AgeChecker ac; + // A-1 + ASSERT_TRUE(ac.IsPinRestrictionRequired(12, nn::cfg::CTR::CFG_REGION_AMERICA, nn::cfg::CTR::CFG_COUNTRY_UNITED_STATES)); + // その他 + ASSERT_FALSE(ac.IsPinRestrictionRequired(13, nn::cfg::CTR::CFG_REGION_AMERICA, nn::cfg::CTR::CFG_COUNTRY_UNITED_STATES)); + ASSERT_FALSE(ac.IsPinRestrictionRequired(13, nn::cfg::CTR::CFG_REGION_EUROPE, nn::cfg::CTR::CFG_COUNTRY_UNITED_KINGDOM)); + ASSERT_FALSE(ac.IsPinRestrictionRequired(13, nn::cfg::CTR::CFG_REGION_JAPAN, nn::cfg::CTR::CFG_COUNTRY_JAPAN)); + +}