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..b36cc7059ed69f5338d422295081e54577ea5c6e 100644 |
--- a/chrome/browser/browsing_data/browsing_data_counter_utils_unittest.cc |
+++ b/chrome/browser/browsing_data/browsing_data_counter_utils_unittest.cc |
@@ -4,12 +4,20 @@ |
#include "chrome/browser/browsing_data/browsing_data_counter_utils.h" |
+#include <string> |
+#include <vector> |
+ |
#include "base/strings/stringprintf.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/browsing_data/autofill_counter.h" |
#include "chrome/test/base/testing_browser_process.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#if defined(ENABLE_EXTENSIONS) |
+#include "base/strings/string_split.h" |
+#include "chrome/browser/browsing_data/hosted_apps_counter.h" |
+#endif |
+ |
// Tests the complex output of the Autofill counter. |
TEST(BrowsingDataCounterUtilsTest, AutofillCounterResult) { |
AutofillCounter counter; |
@@ -20,12 +28,12 @@ TEST(BrowsingDataCounterUtilsTest, AutofillCounterResult) { |
// Test all configurations of zero and nonzero partial results for datatypes. |
// Test singular and plural for each datatype. |
- struct TestCase { |
+ const struct TestCase { |
int num_credit_cards; |
int num_addresses; |
int num_suggestions; |
std::string expected_output; |
- } test_cases[] = { |
+ } kTestCases[] = { |
{0, 0, 0, "none"}, |
{1, 0, 0, "1 credit card"}, |
{0, 5, 0, "5 addresses"}, |
@@ -38,7 +46,7 @@ TEST(BrowsingDataCounterUtilsTest, AutofillCounterResult) { |
{4, 2, 1, "4 credit cards, 2 addresses, 1 other"}, |
}; |
- for (const TestCase& test_case : test_cases) { |
+ for (const TestCase& test_case : kTestCases) { |
AutofillCounter::AutofillResult result( |
&counter, |
test_case.num_suggestions, |
@@ -57,3 +65,47 @@ TEST(BrowsingDataCounterUtilsTest, AutofillCounterResult) { |
EXPECT_EQ(output, base::ASCIIToUTF16(test_case.expected_output)); |
} |
} |
+ |
+#if defined(ENABLE_EXTENSIONS) |
+// 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. |
+ const struct TestCase { |
+ std::string apps_list; |
+ std::string expected_output; |
+ } kTestCases[] = { |
+ { "", "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 : kTestCases) { |
+ // 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)); |
+ } |
+} |
+#endif |