void TagTest::testCompare() { Tag tag1("artist1", "artist", 1, QStringList() << "tag1"); Tag tag2("artist1", "artist", 2, QStringList() << "tag2"); Tag tag3("artist2", "artist", 3, QStringList() << "tag3"); Tag tag4("artist1", "character", 4, QStringList() << "tag4"); Tag tag5("artist1", "unknown", 5, QStringList() << "tag5"); QCOMPARE(tag1 == tag1, true); QCOMPARE(tag1 == tag2, true); QCOMPARE(tag1 == tag3, false); QCOMPARE(tag1 == tag4, false); QCOMPARE(tag1 == tag5, true); }
void TagElementTest() { std::basic_string<utf16_t> testTag = Transcoder::UTF8toUTF16("tagname hoge=\"fuga\" "); TagElement<utf16_t> tag(testTag); CPPUNIT_ASSERT(tag.tagName.length() == 7); CPPUNIT_ASSERT_MESSAGE(Transcoder::UTF16toUTF8(tag.tagName.c_str()), tag.tagName == Transcoder::UTF8toUTF16("tagname")); CPPUNIT_ASSERT(tag.attributes.size() == 1); CPPUNIT_ASSERT(tag.attributes[Transcoder::UTF8toUTF16("hoge")] == Transcoder::UTF8toUTF16("fuga")); testTag = std::basic_string<utf16_t>(Transcoder::UTF8toUTF16("tagname2")); TagElement<utf16_t> tag2(testTag); CPPUNIT_ASSERT(tag2.tagName.length() == 8); CPPUNIT_ASSERT(tag2.tagName == Transcoder::UTF8toUTF16("tagname2")); CPPUNIT_ASSERT(tag2.attributes.size() == 0); CPPUNIT_ASSERT_THROW(TagElement<utf16_t>(Transcoder::UTF8toUTF16("hoge fuga=123")), InvalidTagException); CPPUNIT_ASSERT_THROW(TagElement<utf16_t>(Transcoder::UTF8toUTF16("hoge fuga=")), InvalidTagException); CPPUNIT_ASSERT_THROW(TagElement<utf16_t>(Transcoder::UTF8toUTF16("hoge fuga\"123\"")), InvalidTagException); TagElement<utf16_t> tag3(Transcoder::UTF8toUTF16("hoge fuga=\"\"")); CPPUNIT_ASSERT(tag3.attributes.size() == 1); CPPUNIT_ASSERT(tag3.attributes[Transcoder::UTF8toUTF16("fuga")] == Transcoder::UTF8toUTF16("")); std::string utf8str = Transcoder::UTF16toUTF8(tag3.toString()); const size_t pos = utf8str.find('\n'); if (pos != std::string::npos) utf8str.erase(pos); CPPUNIT_ASSERT_MESSAGE(utf8str, utf8str == "<hoge fuga=\"\" />"); }