Index: chrome/browser/browsing_data/browsing_data_counter_utils_unittest.cc |
diff --git a/chrome/browser/browsing_data/browsing_data_counter_utils_unittest.cc b/chrome/browser/browsing_data/browsing_data_counter_utils_unittest.cc |
index c422570de404e7a323c3e3f9577ba0ed4d6781c1..1b88d23d28c5544ff808c9ea135bf4e0f6cb8458 100644 |
--- a/chrome/browser/browsing_data/browsing_data_counter_utils_unittest.cc |
+++ b/chrome/browser/browsing_data/browsing_data_counter_utils_unittest.cc |
@@ -4,9 +4,14 @@ |
#include "chrome/browser/browsing_data/browsing_data_counter_utils.h" |
+#include <string> |
+#include <vector> |
+ |
+#include "base/strings/string_split.h" |
#include "base/strings/stringprintf.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/browsing_data/autofill_counter.h" |
+#include "chrome/browser/browsing_data/hosted_apps_counter.h" |
#include "chrome/test/base/testing_browser_process.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -57,3 +62,45 @@ TEST(BrowsingDataCounterUtilsTest, AutofillCounterResult) { |
EXPECT_EQ(output, base::ASCIIToUTF16(test_case.expected_output)); |
} |
} |
+ |
+// Tests the complex output of the hosted apps counter. |
+TEST(BrowsingDataCounterUtilsTest, HostedAppsCounterResult) { |
+ HostedAppsCounter counter; |
+ |
+ // This test assumes that the strings are served exactly as defined, |
+ // i.e. that the locale is set to the default "en". |
+ ASSERT_EQ("en", TestingBrowserProcess::GetGlobal()->GetApplicationLocale()); |
+ |
+ // Test the output for various numbers of hosted apps. |
+ struct TestCase { |
vabr (Chromium)
2016/06/20 13:51:43
nit: This could be const.
(If you make it const, c
msramek
2016/06/20 14:06:18
Done. Here and above.
|
+ std::string apps_list; |
+ std::string expected_output; |
+ } test_cases[] = { |
+ { "", "none" }, |
+ { "App1", "1 app (App1)" }, |
+ { "App1, App2", "2 apps (App1, App2)" }, |
+ { "App1, App2, App3", "3 apps (App1, App2, and 1 more)" }, |
+ { "App1, App2, App3, App4", "4 apps (App1, App2, and 2 more)" }, |
+ { "App1, App2, App3, App4, App5", "5 apps (App1, App2, and 3 more)" }, |
+ }; |
+ |
+ for (const TestCase& test_case : test_cases) { |
+ // Split the list of installed apps by commas. |
+ std::vector<std::string> apps = base::SplitString( |
+ test_case.apps_list, ",", |
+ base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); |
+ |
+ // The first two apps in the list are used as examples. |
+ std::vector<std::string> examples; |
+ examples.assign( |
+ apps.begin(), apps.begin() + (apps.size() > 2 ? 2 : apps.size())); |
+ |
+ HostedAppsCounter::HostedAppsResult result( |
+ &counter, |
+ apps.size(), |
+ examples); |
+ |
+ base::string16 output = GetCounterTextFromResult(&result); |
+ EXPECT_EQ(output, base::ASCIIToUTF16(test_case.expected_output)); |
+ } |
+} |