Chromium Code Reviews| 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..ef2d5d6113eb99df9d8b4bc75e327bfe29b2c916 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" |
| @@ -20,12 +25,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 = { |
|
vabr (Chromium)
2016/06/20 14:16:50
The Android compiler says: Do not forget the dropp
msramek
2016/06/20 14:41:02
Actually, all compilers that tried running unit te
|
| {0, 0, 0, "none"}, |
| {1, 0, 0, "1 credit card"}, |
| {0, 5, 0, "5 addresses"}, |
| @@ -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. |
| + 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)); |
| + } |
| +} |