Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/browsing_data/browsing_data_counter_utils.h" | 5 #include "chrome/browser/browsing_data/browsing_data_counter_utils.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| 11 #include "base/strings/stringprintf.h" | |
| 11 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
| 13 #include "chrome/browser/browsing_data/cache_counter.h" | |
| 12 #include "chrome/test/base/testing_browser_process.h" | 14 #include "chrome/test/base/testing_browser_process.h" |
| 13 #include "chrome/test/base/testing_profile.h" | 15 #include "chrome/test/base/testing_profile.h" |
| 14 #include "content/public/test/test_browser_thread_bundle.h" | 16 #include "content/public/test/test_browser_thread_bundle.h" |
| 15 #include "extensions/features/features.h" | 17 #include "extensions/features/features.h" |
| 16 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
| 17 | 19 |
| 18 #if BUILDFLAG(ENABLE_EXTENSIONS) | 20 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 19 #include "base/strings/string_split.h" | 21 #include "base/strings/string_split.h" |
| 20 #include "chrome/browser/browsing_data/hosted_apps_counter.h" | 22 #include "chrome/browser/browsing_data/hosted_apps_counter.h" |
| 21 #endif | 23 #endif |
| 22 | 24 |
| 23 class BrowsingDataCounterUtilsTest : public testing::Test { | 25 class BrowsingDataCounterUtilsTest : public testing::Test { |
| 24 public: | 26 public: |
| 25 BrowsingDataCounterUtilsTest() {} | 27 BrowsingDataCounterUtilsTest() {} |
| 26 ~BrowsingDataCounterUtilsTest() override {} | 28 ~BrowsingDataCounterUtilsTest() override {} |
| 27 | 29 |
| 28 TestingProfile* GetProfile() { return &profile_; } | 30 TestingProfile* GetProfile() { return &profile_; } |
| 29 | 31 |
| 30 private: | 32 private: |
| 31 content::TestBrowserThreadBundle thread_bundle_; | 33 content::TestBrowserThreadBundle thread_bundle_; |
| 32 TestingProfile profile_; | 34 TestingProfile profile_; |
| 33 }; | 35 }; |
| 34 | 36 |
| 37 TEST_F(BrowsingDataCounterUtilsTest, CacheCounterResult) { | |
| 38 // This test assumes that the strings are served exactly as defined, | |
| 39 // i.e. that the locale is set to the default "en". | |
| 40 ASSERT_EQ("en", TestingBrowserProcess::GetGlobal()->GetApplicationLocale()); | |
| 41 const int MB = 1024 * 1024; | |
|
msramek
2017/06/06 09:57:41
style nit: kNameConstantsLikeThis (ideally reuse t
dullweber
2017/06/06 11:26:54
Done.
| |
| 42 | |
| 43 // Test the output for various forms of CacheResults. | |
| 44 const struct TestCase { | |
| 45 int bytes; | |
| 46 bool is_upper_limit; | |
| 47 bool is_basic_tab; | |
| 48 std::string expected_output; | |
| 49 } kTestCases[] = { | |
| 50 {42, false, false, "Less than 1 MB"}, | |
| 51 {42, false, true, "Less than 1 MB"}, | |
| 52 {2.312 * MB, false, false, "2.3 MB"}, | |
| 53 {2.312 * MB, false, true, | |
| 54 "Frees up 2.3 MB. Some sites may load more slowly on your next visit."}, | |
| 55 {2.312 * MB, true, false, "Less than 2.3 MB"}, | |
| 56 // TODO(dullweber): Fix upper case L in estimate string for desktop. | |
|
msramek
2017/06/06 09:57:40
I suggest including a bug number here, since this
dullweber
2017/06/06 11:26:54
Done.
| |
| 57 {2.312 * MB, true, true, | |
| 58 "Frees up Less than 2.3 MB. Some sites may load more slowly on your " | |
| 59 "next visit."}, | |
| 60 {500.2 * MB, false, false, "500 MB"}, | |
| 61 {500.2 * MB, true, false, "Less than 500 MB"}, | |
| 62 }; | |
| 63 | |
| 64 for (const TestCase& test_case : kTestCases) { | |
| 65 CacheCounter counter(GetProfile()); | |
| 66 browsing_data::ClearBrowsingDataTab tab = | |
| 67 test_case.is_basic_tab ? browsing_data::ClearBrowsingDataTab::BASIC | |
| 68 : browsing_data::ClearBrowsingDataTab::ADVANCED; | |
| 69 counter.Init(GetProfile()->GetPrefs(), tab, | |
| 70 browsing_data::BrowsingDataCounter::Callback()); | |
| 71 CacheCounter::CacheResult result(&counter, test_case.bytes, | |
| 72 test_case.is_upper_limit); | |
| 73 SCOPED_TRACE(base::StringPrintf( | |
| 74 "Test params: %d bytes, %d is_upper_limit, %d is_basic_tab.", | |
| 75 test_case.bytes, test_case.is_upper_limit, test_case.is_basic_tab)); | |
| 76 | |
| 77 base::string16 output = GetChromeCounterTextFromResult(&result); | |
| 78 EXPECT_EQ(output, base::ASCIIToUTF16(test_case.expected_output)); | |
| 79 } | |
| 80 } | |
| 81 | |
| 35 #if BUILDFLAG(ENABLE_EXTENSIONS) | 82 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 36 // Tests the complex output of the hosted apps counter. | 83 // Tests the complex output of the hosted apps counter. |
| 37 TEST_F(BrowsingDataCounterUtilsTest, HostedAppsCounterResult) { | 84 TEST_F(BrowsingDataCounterUtilsTest, HostedAppsCounterResult) { |
| 38 HostedAppsCounter counter(GetProfile()); | 85 HostedAppsCounter counter(GetProfile()); |
| 39 | 86 |
| 40 // This test assumes that the strings are served exactly as defined, | 87 // This test assumes that the strings are served exactly as defined, |
| 41 // i.e. that the locale is set to the default "en". | 88 // i.e. that the locale is set to the default "en". |
| 42 ASSERT_EQ("en", TestingBrowserProcess::GetGlobal()->GetApplicationLocale()); | 89 ASSERT_EQ("en", TestingBrowserProcess::GetGlobal()->GetApplicationLocale()); |
| 43 | 90 |
| 44 // Test the output for various numbers of hosted apps. | 91 // Test the output for various numbers of hosted apps. |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 68 HostedAppsCounter::HostedAppsResult result( | 115 HostedAppsCounter::HostedAppsResult result( |
| 69 &counter, | 116 &counter, |
| 70 apps.size(), | 117 apps.size(), |
| 71 examples); | 118 examples); |
| 72 | 119 |
| 73 base::string16 output = GetChromeCounterTextFromResult(&result); | 120 base::string16 output = GetChromeCounterTextFromResult(&result); |
| 74 EXPECT_EQ(output, base::ASCIIToUTF16(test_case.expected_output)); | 121 EXPECT_EQ(output, base::ASCIIToUTF16(test_case.expected_output)); |
| 75 } | 122 } |
| 76 } | 123 } |
| 77 #endif | 124 #endif |
| OLD | NEW |