+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);
+
+}
+