+TEST(ContactLoad, UIDTest){
+
+ ContactDataObject TestFile;
+
+ // Check that the vCard 4.0 file loads OK.
+
+ ASSERT_EQ(CONTACTLOAD_OK, TestFile.LoadFile("LoadCheck-Load4.vcf"));
+
+ ASSERT_EQ("903588-9082374-989120310-AAFECDBCDF", TestFile.UIDToken);
+
+}
+
+TEST(ContactLoad, ClientPIDMapTests){
+
+ ContactDataObject TestFile;
+
+ ASSERT_EQ(CONTACTLOAD_OK, TestFile.LoadFile("LoadCheck-Load4.vcf"));
+
+ std::map<int,wxString>::iterator TestFileIter;
+
+ // Test the first Client PID Map.
+
+ TestFileIter = TestFile.ClientPIDList.find(0);
+ ASSERT_NE(TestFile.ClientPIDList.end(), TestFileIter);
+ ASSERT_EQ("1;urn;uuid:aaaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", TestFileIter->second);
+
+ TestFileIter = TestFile.ClientPIDListTokens.find(0);
+ ASSERT_EQ(TestFile.ClientPIDListTokens.end(), TestFileIter);
+
+ // Test the second Client PID Map.
+
+ TestFileIter = TestFile.ClientPIDList.find(1);
+ ASSERT_NE(TestFile.ClientPIDList.end(), TestFileIter);
+ ASSERT_EQ("2;urn;uuid:ccccccccc-cccc-cccc-cccc-cccccccccccc", TestFileIter->second);
+
+ TestFileIter = TestFile.ClientPIDListTokens.find(1);
+ ASSERT_EQ(TestFile.ClientPIDListTokens.end(), TestFileIter);
+
+ // Test the third Client PID Map.
+
+ TestFileIter = TestFile.ClientPIDListTokens.find(2);
+ ASSERT_NE(TestFile.ClientPIDListTokens.end(), TestFileIter);
+ ASSERT_EQ("MEEP=MOO;WOOP=WOO", TestFileIter->second);
+
+ TestFileIter = TestFile.ClientPIDList.find(2);
+ ASSERT_NE(TestFile.ClientPIDList.end(), TestFileIter);
+ ASSERT_EQ("3;urn;uuid:bbbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", TestFileIter->second);
+
+}
+
+TEST(ContactLoad, RevisionTests){
+
+ ContactDataObject TestFile;
+
+ ASSERT_EQ(CONTACTLOAD_OK, TestFile.LoadFile("LoadCheck-Load4.vcf"));
+
+ ASSERT_EQ("20151227T033000Z", TestFile.Revision);
+ ASSERT_EQ("TEST=YES;DATA=NO;MORE=MAYBE", TestFile.RevisionTokens);
+
+}
+
+TEST(ContactLoad, SourceTests){
+
+ ContactDataObject TestFile;
+
+ // Check that the vCard 4.0 file loads OK.
+
+ ASSERT_EQ(CONTACTLOAD_OK, TestFile.LoadFile("LoadCheck-Load4.vcf"));
+
+ std::map<int,wxString>::iterator TestFileIter;
+ std::map<int,int>::iterator TestFileIntIter;
+
+ // Start with a general source address.
+
+ TestFileIter = TestFile.SourceList.find(0);
+ ASSERT_NE(TestFile.SourceList.end(), TestFileIter);
+ ASSERT_EQ("http://example.com/source/sourcea.vcf", TestFileIter->second);
+
+ // Check the TYPE section.
+
+ TestFileIter = TestFile.SourceListType.find(0);
+ ASSERT_EQ(TestFile.SourceListType.end(), TestFileIter);
+
+ // Check the ALTID section.
+
+ TestFileIter = TestFile.SourceListAltID.find(0);
+ ASSERT_NE(TestFile.SourceListAltID.end(), TestFileIter);
+ ASSERT_EQ("74", TestFileIter->second);
+
+ // Check the PID section.
+
+ TestFileIter = TestFile.SourceListPID.find(0);
+ ASSERT_NE(TestFile.SourceListPID.end(), TestFileIter);
+ ASSERT_EQ("71", TestFileIter->second);
+
+ // Check the MEDIATYPE section.
+
+ TestFileIter = TestFile.SourceListMediatype.find(0);
+ ASSERT_NE(TestFile.SourceListMediatype.end(), TestFileIter);
+ ASSERT_EQ("text/plain", TestFileIter->second);
+
+ // Check the PREF section.
+
+ TestFileIntIter = TestFile.SourceListPref.find(0);
+ ASSERT_NE(TestFile.SourceListPref.end(), TestFileIntIter);
+ ASSERT_EQ(72, TestFileIntIter->second);
+
+ // Check the extra tokens.
+
+ TestFileIter = TestFile.SourceListTokens.find(0);
+ ASSERT_NE(TestFile.SourceListTokens.end(), TestFileIter);
+ ASSERT_EQ("STATUS=FEED", TestFileIter->second);
+
+ // Start with the home source address.
+
+ TestFileIter = TestFile.SourceList.find(1);
+ ASSERT_NE(TestFile.SourceList.end(), TestFileIter);
+ ASSERT_EQ("http://example.com/source/sourceb.vcf", TestFileIter->second);
+
+ // Check the TYPE section.
+
+ TestFileIter = TestFile.SourceListType.find(1);
+ ASSERT_NE(TestFile.SourceListType.end(), TestFileIter);
+ ASSERT_EQ("home", TestFileIter->second);
+
+ // Check the ALTID section.
+
+ TestFileIter = TestFile.SourceListAltID.find(1);
+ ASSERT_NE(TestFile.SourceListAltID.end(), TestFileIter);
+ ASSERT_EQ("84", TestFileIter->second);
+
+ // Check the PID section.
+
+ TestFileIter = TestFile.SourceListPID.find(1);
+ ASSERT_NE(TestFile.SourceListPID.end(), TestFileIter);
+ ASSERT_EQ("81", TestFileIter->second);
+
+ // Check the MEDIATYPE section.
+
+ TestFileIter = TestFile.SourceListMediatype.find(1);
+ ASSERT_NE(TestFile.SourceListMediatype.end(), TestFileIter);
+ ASSERT_EQ("text/plainpaper", TestFileIter->second);
+
+ // Check the PREF section.
+
+ TestFileIntIter = TestFile.SourceListPref.find(1);
+ ASSERT_NE(TestFile.SourceListPref.end(), TestFileIntIter);
+ ASSERT_EQ(82, TestFileIntIter->second);
+
+ // Check the extra tokens.
+
+ TestFileIter = TestFile.SourceListTokens.find(1);
+ ASSERT_NE(TestFile.SourceListTokens.end(), TestFileIter);
+ ASSERT_EQ("STATUS=ONLINE", TestFileIter->second);
+
+ // Start with the home source address.
+
+ TestFileIter = TestFile.SourceList.find(2);
+ ASSERT_NE(TestFile.SourceList.end(), TestFileIter);
+ ASSERT_EQ("http://example.com/source/sourcec.vcf", TestFileIter->second);
+
+ // Check the TYPE section.
+
+ TestFileIter = TestFile.SourceListType.find(2);
+ ASSERT_NE(TestFile.SourceListType.end(), TestFileIter);
+ ASSERT_EQ("work", TestFileIter->second);
+
+ // Check the ALTID section.
+
+ TestFileIter = TestFile.SourceListAltID.find(2);
+ ASSERT_NE(TestFile.SourceListAltID.end(), TestFileIter);
+ ASSERT_EQ("94", TestFileIter->second);
+
+ // Check the PID section.
+
+ TestFileIter = TestFile.SourceListPID.find(2);
+ ASSERT_NE(TestFile.SourceListPID.end(), TestFileIter);
+ ASSERT_EQ("91", TestFileIter->second);
+
+ // Check the MEDIATYPE section.
+
+ TestFileIter = TestFile.SourceListMediatype.find(2);
+ ASSERT_NE(TestFile.SourceListMediatype.end(), TestFileIter);
+ ASSERT_EQ("text/sandpaper", TestFileIter->second);
+
+ // Check the PREF section.
+
+ TestFileIntIter = TestFile.SourceListPref.find(2);
+ ASSERT_NE(TestFile.SourceListPref.end(), TestFileIntIter);
+ ASSERT_EQ(92, TestFileIntIter->second);
+
+ // Check the extra tokens.
+
+ TestFileIter = TestFile.SourceListTokens.find(2);
+ ASSERT_NE(TestFile.SourceListTokens.end(), TestFileIter);
+ ASSERT_EQ("STATUS=OFFLINE", TestFileIter->second);
+
+}
+
+TEST(ContactLoad, XMLTest){
+
+ ContactDataObject TestFile;
+
+ // Check that the vCard 4.0 file loads OK.
+
+ ASSERT_EQ(CONTACTLOAD_OK, TestFile.LoadFile("LoadCheck-Load4.vcf"));
+
+ std::map<int,wxString>::iterator TestFileIter;
+ std::map<int,int>::iterator TestFileIntIter;
+
+ // Start with the first XML property.
+
+ // Start with a general source address.
+
+ TestFileIter = TestFile.XMLList.find(0);
+ ASSERT_NE(TestFile.XMLList.end(), TestFileIter);
+ ASSERT_EQ("<a xmlns=\"http://www.w3.org/1999/xhtml\"\\n"
+ " href=\"http://example.com/\">Example Page 1</a>", TestFileIter->second);
+
+ TestFileIter = TestFile.XMLList.find(1);
+ ASSERT_NE(TestFile.XMLList.end(), TestFileIter);
+ ASSERT_EQ("<a xmlns=\"http://www.w3.org/1999/xhtml\"\\n"
+ " href=\"http://example.com/page2.html\">Example Page 2</a>", TestFileIter->second);
+
+ TestFileIter = TestFile.XMLList.find(2);
+ ASSERT_NE(TestFile.XMLList.end(), TestFileIter);
+ ASSERT_EQ("<a xmlns=\"http://www.w3.org/1999/xhtml\"\\n"
+ " href=\"http://example.com/page3.html\">Example Page 3</a>", TestFileIter->second);
+
+}
+