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