reduce_accept_language_service_test_util.cc 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. // Copyright 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/reduce_accept_language/browser/reduce_accept_language_service_test_util.h"
  5. #include <memory>
  6. #include <string>
  7. #include <vector>
  8. #include "base/test/metrics/histogram_tester.h"
  9. #include "components/content_settings/core/browser/host_content_settings_map.h"
  10. #include "components/content_settings/core/common/content_settings_types.h"
  11. #include "components/prefs/pref_service.h"
  12. #include "components/reduce_accept_language/browser/reduce_accept_language_service.h"
  13. #include "testing/gmock/include/gmock/gmock.h"
  14. #include "testing/gtest/include/gtest/gtest.h"
  15. #include "url/gurl.h"
  16. #include "url/origin.h"
  17. using reduce_accept_language::ReduceAcceptLanguageService;
  18. namespace reduce_accept_language::test {
  19. ReduceAcceptLanguageServiceTester::ReduceAcceptLanguageServiceTester(
  20. HostContentSettingsMap* settings_map,
  21. ReduceAcceptLanguageService* service,
  22. PrefService* prefs)
  23. : settings_map_(settings_map), service_(service), prefs_(prefs) {}
  24. void ReduceAcceptLanguageServiceTester::VerifyFetchAcceptLanguageList(
  25. const std::vector<std::string>& expected_langauges) const {
  26. const std::vector<std::string>& languages =
  27. service_->GetUserAcceptLanguages();
  28. EXPECT_EQ(languages, expected_langauges);
  29. }
  30. void ReduceAcceptLanguageServiceTester::VerifyPersistFail(
  31. const GURL& host,
  32. const std::string& lang) const {
  33. service_->PersistReducedLanguage(url::Origin::Create(host), lang);
  34. const absl::optional<std::string>& language =
  35. service_->GetReducedLanguage(url::Origin::Create(host));
  36. EXPECT_FALSE(language.has_value());
  37. }
  38. void ReduceAcceptLanguageServiceTester::VerifyPersistSuccessOnJavaScriptDisable(
  39. const GURL& host,
  40. const std::string& lang) const {
  41. settings_map_->SetContentSettingDefaultScope(
  42. host, GURL(), ContentSettingsType::JAVASCRIPT, CONTENT_SETTING_BLOCK);
  43. VerifyPersistSuccess(host, lang);
  44. }
  45. void ReduceAcceptLanguageServiceTester::VerifyPersistSuccess(
  46. const GURL& host,
  47. const std::string& lang) const {
  48. base::HistogramTester histograms;
  49. service_->PersistReducedLanguage(url::Origin::Create(host), lang);
  50. const absl::optional<std::string>& language =
  51. service_->GetReducedLanguage(url::Origin::Create(host));
  52. EXPECT_TRUE(language.has_value());
  53. EXPECT_EQ(language.value(), lang);
  54. histograms.ExpectTotalCount("ReduceAcceptLanguage.StoreLatency", 1);
  55. histograms.ExpectUniqueSample("ReduceAcceptLanguage.UpdateSize", lang.size(),
  56. 1);
  57. }
  58. void ReduceAcceptLanguageServiceTester::VerifyPersistMultipleHostsSuccess(
  59. const std::vector<GURL>& hosts,
  60. const std::vector<std::string>& langs) const {
  61. EXPECT_EQ(hosts.size(), langs.size());
  62. for (size_t i = 0; i < hosts.size(); i++) {
  63. service_->PersistReducedLanguage(url::Origin::Create(hosts[i]), langs[i]);
  64. const absl::optional<std::string>& language =
  65. service_->GetReducedLanguage(url::Origin::Create(hosts[i]));
  66. EXPECT_TRUE(language.has_value());
  67. EXPECT_EQ(language.value(), langs[i]);
  68. }
  69. }
  70. } // namespace reduce_accept_language::test