diff options
Diffstat (limited to 'chromium/weblayer/browser/subresource_filter_browsertest.cc')
-rw-r--r-- | chromium/weblayer/browser/subresource_filter_browsertest.cc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/chromium/weblayer/browser/subresource_filter_browsertest.cc b/chromium/weblayer/browser/subresource_filter_browsertest.cc index 8f5435e3dd7..b8948812fdb 100644 --- a/chromium/weblayer/browser/subresource_filter_browsertest.cc +++ b/chromium/weblayer/browser/subresource_filter_browsertest.cc @@ -2,8 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "base/json/json_reader.h" +#include "components/subresource_filter/content/browser/ruleset_service.h" #include "testing/gtest/include/gtest/gtest.h" +#include "ui/base/resource/resource_bundle.h" #include "weblayer/browser/browser_process.h" +#include "weblayer/grit/weblayer_resources.h" #include "weblayer/test/weblayer_browser_test.h" namespace weblayer { @@ -23,4 +27,36 @@ IN_PROC_BROWSER_TEST_F(SubresourceFilterBrowserTest, RulesetService) { nullptr); } +// Tests that the ruleset is published as part of startup. +IN_PROC_BROWSER_TEST_F(SubresourceFilterBrowserTest, RulesArePublished) { + auto* ruleset_service = + BrowserProcess::GetInstance()->subresource_filter_ruleset_service(); + + // Publishing might or might not have already finished at this point; wait for + // it to finish if necessary. + if (!ruleset_service->GetMostRecentlyIndexedVersion().IsValid()) { + base::RunLoop run_loop; + ruleset_service->SetRulesetPublishedCallbackForTesting( + run_loop.QuitClosure()); + + run_loop.Run(); + } + + auto ruleset_version = ruleset_service->GetMostRecentlyIndexedVersion(); + EXPECT_TRUE(ruleset_version.IsValid()); + + std::string most_recently_indexed_content_version = + ruleset_version.content_version; + + std::string packaged_ruleset_manifest_string = + ui::ResourceBundle::GetSharedInstance().LoadDataResourceString( + IDR_SUBRESOURCE_FILTER_UNINDEXED_RULESET_MANIFEST_JSON); + auto packaged_ruleset_manifest = + base::JSONReader::Read(packaged_ruleset_manifest_string); + std::string* packaged_content_version = + packaged_ruleset_manifest->FindStringKey("version"); + + EXPECT_EQ(most_recently_indexed_content_version, *packaged_content_version); +} + } // namespace weblayer |