+}
+
+TEST(CommonFunctions, GivenPredefinedFilePathWhenGetAccountsFileIsCalledThenReceivedFilePathMatches)
+{
+
+ // Run the unit tests depending on the operating system being used.
+
+#if defined(__WIN32__)
+
+#elif defined(__APPLE__)
+
+#else
+
+ // Setup for comparison purposes. Should be
+ // /home/<user>/.xestiaab/preferences/accounts
+
+ // Given
+
+ wxString AccountsFileCheck = "";
+ AccountsFileCheck.Clear();
+ AccountsFileCheck.Append(wxString::FromUTF8(getenv("HOME")));
+ AccountsFileCheck.Append(wxT("/.xestiaab/preferences/accounts"));
+
+ // When
+
+ wxString AccountsFile = GetAccountsFile();
+
+ // Then
+
+ ASSERT_EQ(AccountsFile, AccountsFileCheck);
+
+#endif
+
+}
+
+TEST(CommonFunctions, GivenPredefinedFilePathWhenGetSettingsFileIsCalledThenReceivedFilePathMatches)
+{
+
+ // Run the unit tests depending on the operating system being used.
+
+#if defined(__WIN32__)
+
+#elif defined(__APPLE__)
+
+#else
+
+ // Setup for comparison purposes. Should be
+ // /home/<user>/.xestiaab/preferences/accounts
+
+ // Given
+
+ wxString SettingsFileCheck = "";
+ SettingsFileCheck.Clear();
+ SettingsFileCheck.Append(wxString::FromUTF8(getenv("HOME")));
+ SettingsFileCheck.Append(wxT("/.xestiaab/preferences/settings"));
+
+ // When
+
+ wxString SettingsFile = GetSettingsFile();
+
+ // Then
+
+ ASSERT_EQ(SettingsFile, SettingsFileCheck);
+
+#endif
+
+}
+
+TEST(CommonFunctions, GivenFivePredefinedFilenamePathsWhenCreateFilenamePathIsCalledThenReceivedPathMatches)
+{
+
+ // Run the unit tests depending on the operating system being used.
+
+#if defined(__WIN32__)
+
+#elif defined(__APPLE__)
+
+#else
+
+ // Given
+
+ wxString FilenamePath1 = "/test";
+ wxString FilenamePath2 = "/example/test";
+ wxString FilenamePath3 = "/home/meep/test";
+ wxString FilenamePath4 = "/home/meep/moo/test";
+ wxString FilenamePath5 = "/home/meep/moo/yargh/test";
+
+ // When
+
+ wxString GeneratedFilenamePath1 = CreateFilenamePath("", "test");
+ wxString GeneratedFilenamePath2 = CreateFilenamePath("/example", "test");
+ wxString GeneratedFilenamePath3 = CreateFilenamePath("/home/meep", "test");
+ wxString GeneratedFilenamePath4 = CreateFilenamePath("/home/meep/moo", "test");
+ wxString GeneratedFilenamePath5 = CreateFilenamePath("/home/meep/moo/yargh", "test");
+
+ // Then
+
+ ASSERT_EQ(FilenamePath1, GeneratedFilenamePath1);
+ ASSERT_EQ(FilenamePath2, GeneratedFilenamePath2);
+ ASSERT_EQ(FilenamePath3, GeneratedFilenamePath3);
+ ASSERT_EQ(FilenamePath4, GeneratedFilenamePath4);
+ ASSERT_EQ(FilenamePath5, GeneratedFilenamePath5);
+
+#endif
+
+}
+
+TEST(CommonFunctions, GivenTwoFilesWhenGetMIMEIsCalledThenBothFilesMIMETypesAreGiven)
+{
+
+ // Get the MIME type based on the files given.
+
+ // Given
+
+ wxString File1MIMEFormat = "";
+ wxString File2MIMEFormat = "";
+
+ // When
+
+ File1MIMEFormat = GetMIME("TextMIMEExample.txt");
+ File2MIMEFormat = GetMIME("PictureMIMEExample.png");
+
+ // Then
+
+ ASSERT_EQ("text/plain", GetMIME("TextMIMEExample.txt"));
+ ASSERT_EQ("image/png", GetMIME("PictureMIMEExample.png"));
+
+}
+
+TEST(CommonFunctions, GivenTwoDomainNamesWhenCheckDangerousListIsCalledThenReturnsCorrectStatus)
+{
+
+ // Test that the dangerous list is actually working.
+
+ // Given
+
+ bool domainStatus = true;
+
+ // When
+
+ domainStatus = CheckDangerousList("example.com");
+
+ // Then
+
+ ASSERT_EQ(false, domainStatus);
+
+ // When
+
+ domainStatus = false;
+ domainStatus = CheckDangerousList("google.com");
+
+ // Then
+
+ ASSERT_EQ(true, domainStatus);
+
+}
+
+TEST(CommonFunctions, GivenExampleStringWhenEscapeStringIsCalledThenReturnedStringIsExample)
+{
+
+ // Test the escape string function.
+
+ // Given
+
+ wxString EscapeStringData = "Example";
+
+ // When
+
+ EscapeString(&EscapeStringData, false);
+
+ // Then
+
+ ASSERT_EQ("Example", EscapeStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWithCommaWhenEscapeStringIsCalledThenCommaIsEscaped)
+{
+
+ // Test the escape string function.
+
+ // Given
+
+ wxString EscapeStringData = "Here we go, an \"example\" of escaping string.";
+
+ // When
+
+ EscapeString(&EscapeStringData, false);
+
+ // Then
+
+ ASSERT_EQ("Here we go\\, an \"example\" of escaping string.", EscapeStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWithNewlineCharactersWhenEscapeStringIsCalledThenNewlinesAreEscaped)
+{
+
+ // Test the escape string function.
+
+ // Given
+
+ wxString EscapeStringData = "Lets put some \nnew \nlines \nin \nhere.";
+
+ // When
+
+ EscapeString(&EscapeStringData, false);
+
+ // Then
+
+ ASSERT_EQ("Lets put some \\nnew \\nlines \\nin \\nhere.", EscapeStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenAStringWithReturnCharactersWhenEscapeStringIsCalledThenReturnsAreRemoved)
+{
+
+ // Test the escape string function.
+
+ // Given
+
+ wxString EscapeStringData = "Lets put some \r\nnew \r\nlines \r\nin \r\nhere.";
+
+ // When
+
+ EscapeString(&EscapeStringData, false);
+
+ // Then
+
+ ASSERT_EQ("Lets put some \\nnew \\nlines \\nin \\nhere.", EscapeStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWithBackslashesWhenEscapeStringIsCalledThenBackslashesAreEscaped)
+{
+
+ // Test the escape string function.
+
+ // Given
+
+ wxString EscapeStringData = "A:\\path\\example\\lets\\have\\some\\fun";
+
+ // When
+
+ EscapeString(&EscapeStringData, false);
+
+ // Then
+
+ ASSERT_EQ("A:\\\\path\\\\example\\\\lets\\\\have\\\\some\\\\fun", EscapeStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenExampleStringWhenCaptureStringIsCalledThenReturnedStringIsExample)
+{
+
+ // Test the capture string function.
+
+ // Given
+
+ wxString CaptureStringData = "Example";
+
+ // When
+
+ CaptureString(&CaptureStringData, false);
+
+ // Then
+
+ ASSERT_EQ("Example", CaptureStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWithEscapedCommasWhenCaptureStringIsCalledThenCommasAreCaptured)
+{
+
+ // Test the capture string function.
+
+ // Given
+
+ wxString CaptureStringData = "Here we go\\, an \"example\" of escaping string.";
+
+ // When
+
+ CaptureString(&CaptureStringData, false);
+
+ // Then
+
+ ASSERT_EQ("Here we go, an \"example\" of escaping string.", CaptureStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWithEscapedNewlinesWhenCaptureStringIsCalledThenNewlinesAreCaptured)
+{
+
+ // Test the capture string function.
+
+ // Given
+
+ wxString CaptureStringData = "Lets put some \\nnew \\nlines \\nin \\nhere.";
+
+ // When
+
+ CaptureString(&CaptureStringData, false);
+
+ // Then
+
+ ASSERT_EQ("Lets put some \nnew \nlines \nin \nhere.", CaptureStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWithEscapedBackslashesWhenCaptureStringIsCalledThenBackslashesAreCaptured)
+{
+
+ // Test the capture string function.
+
+ // Given
+
+ wxString CaptureStringData = "A:\\\\path\\\\example\\\\lets\\\\have\\\\some\\\\fun";
+
+ // When
+
+ CaptureString(&CaptureStringData, false);
+
+ // Then
+
+ ASSERT_EQ("A:\\path\\example\\lets\\have\\some\\fun", CaptureStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWithSeveralBackslashesWhenResetUnusedStringIsCalledThenStringIsReset)
+{
+
+ // Tests for resetting an unused string.
+
+ // Given
+
+ wxString ResetUnusedStringData = "Random string with a \\\\\\\\serverpath\\\\location";
+
+ // When
+
+ ResetUnusedString(&ResetUnusedStringData);
+
+ // Then
+
+ ASSERT_EQ("Random string with a \\\\serverpath\\location", ResetUnusedStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWithNewlinesWhenResetUnusedStringIsCalledThenStringIsFormatted)
+{
+
+ // Tests for resetting an unused string.
+
+ // Given
+
+ wxString ResetUnusedStringData = "Some text \\nwith new \\nlines!";
+
+ // When
+
+ ResetUnusedString(&ResetUnusedStringData);
+
+ // Then
+
+ ASSERT_EQ("Some text \nwith new \nlines!", ResetUnusedStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWithSeveralCharactersWhenResetUnusedStringThenStringIsFormatted)
+{
+
+ // Tests for resetting an unused string.
+
+ // Given
+
+ wxString ResetUnusedStringData = "And now the list of characters: \\\\ \\n \\; \\,";
+
+ // When
+
+ ResetUnusedString(&ResetUnusedStringData);
+
+ // Then
+
+ ASSERT_EQ("And now the list of characters: \\ \n ; ,", ResetUnusedStringData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWhenConvertToHTMLIsCalledThenStringisHTMLEscaped)
+{
+
+ // Tests for converting data for inserting into a HTML
+ // formatted document.
+
+ // Given
+
+ wxString ConvertToHTMLData = "The test line where < is probably better than >!";
+
+ // When
+
+ ConvertToHTML(&ConvertToHTMLData);
+
+ // Then
+
+ ASSERT_EQ("The test line where < is probably better than >!", ConvertToHTMLData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWithNewlineWhenConvertToHTMLIsCalledThenStringIsHTMLEscapedWithFormattedNewline)
+{
+
+ // Tests for converting data for inserting into a HTML
+ // formatted document.
+
+ // Given
+
+ wxString ConvertToHTMLData = "More testing &<>\n";
+
+ // When
+
+ ConvertToHTML(&ConvertToHTMLData);
+
+ // Then
+
+ ASSERT_EQ("More testing &<><br>", ConvertToHTMLData.ToStdString());
+
+}
+
+TEST(CommonFunctions, GivenStringWithSeveralLinesWhenConvertToHTMLIsCalledThenStringIsHTMLEscapedWithFormattedNewlines)
+{
+
+ // Tests for converting data for inserting into a HTML
+ // formatted document.
+
+ // Given
+
+ wxString ConvertToHTMLData = "This is the first line.\nThis is the second line.\nThis is the third line.";
+
+ // When
+
+ ConvertToHTML(&ConvertToHTMLData);
+
+ // Then
+
+ ASSERT_EQ("This is the first line.<br>This is the second line.<br>This is the third line.", ConvertToHTMLData.ToStdString());
+
+}
+
+static std::map<int,int> mapExample =
+{
+ { 0, 1 }, { 1, 1 }, { 2, 1 }, { 5, 1 }, { 500, 1 }, { 2415, 1 }
+};
+static int itemIndex = 0;
+
+bool mapExistsStatus = false;
+
+TEST(CommonFunctions, GivenMapExistsStatusIsFalseAndItemIndexIs0WhenMapDataExistsIsCalledThenConfirmItemIndex0DoesExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = false;
+ itemIndex = 0;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(true, mapExistsStatus);
+
+}
+
+TEST(CommonFunctions, GivenMapExistsStatusIsFalseAndItemIndexIs1WhenMapDataExistsIsCalledThenConfirmItemIndex1DoesExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = false;
+ itemIndex = 1;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(true, mapExistsStatus);
+
+}
+
+TEST(CommonFunctions, GivenMapExistsStatusIsFalseAndItemIndexIs2WhenMapDataExistsIsCalledThenConfirmItemIndex2DoesExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = false;
+ itemIndex = 2;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(true, mapExistsStatus);
+
+}
+
+TEST(CommonFunctions, GivenMapExistsStatusIsTrueAndItemIndexIs3WhenMapDataExistsIsCalledThenConfirmItemIndex3DoesntExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = true;
+ itemIndex = 3;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(false, mapExistsStatus);
+
+}
+
+TEST(CommonFunctions, GivenMapExistsStatusIsFalseAndItemIndexIs5WhenMapDataExistsIsCalledThenConfirmItemIndex5DoesExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = false;
+ itemIndex = 5;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(true, mapExistsStatus);
+
+}
+
+TEST(CommonFunctions, GivenMapExistsStatusIsTrueAndItemIndexIs6WhenMapDataExistsIsCalledThenConfirmItemIndex6DoesntExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = true;
+ itemIndex = 6;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(false, mapExistsStatus);
+
+}
+
+TEST(CommonFunctions, GivenMapExistsStatusIsFalseAndItemIndexIs499WhenMapDataExistsIsCalledThenConfirmItemIndex499DoesntExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = false;
+ itemIndex = 499;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(false, mapExistsStatus);
+
+}
+
+TEST(CommonFunctions, GivenMapExistsStatusIsFalseAndItemIndexIs500WhenMapDataExistsIsCalledThenConfirmItemIndex500DoesExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = false;
+ itemIndex = 500;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(true, mapExistsStatus);
+
+}
+
+TEST(CommonFunctions, GivenMapExistsStatusIsTrueAndItemIndexIs501WhenMapDataExistsIsCalledThenConfirmItemIndex501DoesntExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = true;
+ itemIndex = 501;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(false, mapExistsStatus);
+
+}
+
+TEST(CommonFunctions, GivenMapExistsStatusIsTrueAndItemIndexIs2414WhenMapDataExistsIsCalledThenConfirmItemIndex2414DoesntExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = true;
+ itemIndex = 2414;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(false, mapExistsStatus);
+
+}
+
+TEST(CommonFunctions, GivenMapExistsStatusIsFalseAndItemIndexIs2415WhenMapDataExistsIsCalledThenConfirmItemIndex2415DoesExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = false;
+ itemIndex = 2415;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(true, mapExistsStatus);
+
+}
+
+TEST(CommonFunctions, GivenMapExistsStatusIsTrueAndItemIndexIs2416WhenMapDataExistsIsCalledThenConfirmItemIndex2416DoesntExist)
+{
+
+ // Tests for checking that map data exists.
+
+ // Given
+
+ mapExistsStatus = true;
+ itemIndex = 2416;
+
+ // When
+
+ mapExistsStatus = MapDataExists(&itemIndex, &mapExample);
+
+ // Then
+
+ ASSERT_EQ(false, mapExistsStatus);
+