GTEST_TEST_F(LocString, wrongEncodingUTF8) { static const byte kData[] = { 0x09, 0x00, 0x00, 0x00, 0x46, 0xFF, 0xB6, 0xC3, 0xB6, 0x62, 0xC3, 0xA4, 0x72 }; Common::MemoryReadStream stream(kData); Aurora::LocString locString; EXPECT_THROW(locString.readString(1, stream), Common::Exception); }
GTEST_TEST_F(LocString, unknownEncodingUTF8) { static const byte kData[] = { 0x09, 0x00, 0x00, 0x00, 0x46, 0xC3, 0xB6, 0xC3, 0xB6, 0x62, 0xC3, 0xA4, 0x72 }; Common::MemoryReadStream stream(kData); Aurora::LocString locString; locString.readString(4, stream); EXPECT_STREQ(locString.getString().c_str(), "[???]"); }
GTEST_TEST_F(LocString, wrongEncodingNonUTF8) { if (!Common::hasSupportEncoding(Common::kEncodingCP1252)) { const ::testing::TestInfo* const testInfo = ::testing::UnitTest::GetInstance()->current_test_info(); std::fprintf(stderr, "Skipping %s.%s\n", testInfo->test_case_name(), testInfo->name()); return; } static const byte kData[] = { 0x04, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81 }; Common::MemoryReadStream stream(kData); Aurora::LocString locString; locString.readString(2, stream); EXPECT_STREQ(locString.getString().c_str(), "[!?!]"); }
GTEST_TEST_F(LocString, readString) { static const byte kData[] = { 0x09, 0x00, 0x00, 0x00, 0x46, 0xC3, 0xB6, 0xC3, 0xB6, 0x62, 0xC3, 0xA4, 0x72 }; Common::MemoryReadStream stream(kData); Aurora::LocString locString; locString.readString(1, stream); EXPECT_FALSE(locString.hasString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderMale )); EXPECT_TRUE (locString.hasString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderFemale)); EXPECT_STREQ(locString.getString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderMale ).c_str(), ""); EXPECT_STREQ(locString.getString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderFemale).c_str(), kUTF8String); EXPECT_STREQ(locString.getFirstString().c_str(), kUTF8String); EXPECT_STREQ(locString.getString().c_str(), kUTF8String); }