Index: components/subresource_filter/core/common/test_ruleset_creator.cc |
diff --git a/components/subresource_filter/core/common/test_ruleset_creator.cc b/components/subresource_filter/core/common/test_ruleset_creator.cc |
index b2255fd3e38bc7f90e6a2d84f694c78953bbfb72..b99a0ff159fdba1e5b0ef0272abbf1c7e371682b 100644 |
--- a/components/subresource_filter/core/common/test_ruleset_creator.cc |
+++ b/components/subresource_filter/core/common/test_ruleset_creator.cc |
@@ -7,9 +7,28 @@ |
#include "base/files/file_util.h" |
#include "base/logging.h" |
#include "base/strings/string_number_conversions.h" |
+#include "components/subresource_filter/core/common/indexed_ruleset.h" |
+#include "components/subresource_filter/core/common/proto/rules.pb.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace subresource_filter { |
+ |
+namespace { |
+ |
+proto::UrlRule CreateSuffixRule(base::StringPiece suffix) { |
+ proto::UrlRule rule; |
+ rule.set_semantics(proto::RULE_SEMANTICS_BLACKLIST); |
+ rule.set_source_type(proto::SOURCE_TYPE_ANY); |
+ rule.set_element_types(proto::ELEMENT_TYPE_ALL); |
+ rule.set_url_pattern_type(proto::URL_PATTERN_TYPE_SUBSTRING); |
+ rule.set_anchor_left(proto::ANCHOR_TYPE_NONE); |
+ rule.set_anchor_right(proto::ANCHOR_TYPE_BOUNDARY); |
+ rule.set_url_pattern(suffix.as_string()); |
+ return rule; |
+} |
+ |
+} // namespace |
+ |
namespace testing { |
TestRulesetCreator::TestRulesetCreator() = default; |
@@ -17,15 +36,32 @@ TestRulesetCreator::~TestRulesetCreator() = default; |
void TestRulesetCreator::CreateRulesetToDisallowURLsWithPathSuffix( |
base::StringPiece suffix, |
+ std::vector<uint8_t>* buffer) { |
+ RulesetIndexer indexer; |
+ bool ok = indexer.AddUrlRule(CreateSuffixRule(suffix)); |
engedy
2016/07/22 14:19:58
In tests, prefer failing with a fatal GTest failur
pkalinnikov
2016/07/25 11:41:12
Done.
|
+ CHECK(ok); |
+ indexer.Finish(); |
+ buffer->insert(buffer->end(), indexer.data(), |
engedy
2016/07/22 14:19:58
Is it meaningful to append? If not, I'd suggest ma
pkalinnikov
2016/07/25 11:41:12
Done.
|
+ indexer.data() + indexer.size()); |
+} |
+ |
+void TestRulesetCreator::CreateRulesetToDisallowURLsWithPathSuffix( |
+ base::StringPiece suffix, |
base::File* ruleset_file) { |
DCHECK(ruleset_file); |
ASSERT_TRUE(scoped_temp_dir_.IsValid() || |
scoped_temp_dir_.CreateUniqueTempDir()); |
base::FilePath unique_temp_path = scoped_temp_dir_.path().AppendASCII( |
base::IntToString(next_ruleset_version_++)); |
- int ruleset_size = base::checked_cast<int>(suffix.size()); |
+ |
+ std::vector<uint8_t> ruleset; |
+ CreateRulesetToDisallowURLsWithPathSuffix(suffix, &ruleset); |
+ |
+ const char* ruleset_data = reinterpret_cast<const char*>(ruleset.data()); |
engedy
2016/07/22 14:19:58
nit: I'd suggest inlining this if it does not look
pkalinnikov
2016/07/25 11:41:12
Done.
|
+ int ruleset_size = base::checked_cast<int>(ruleset.size()); |
engedy
2016/07/22 14:19:58
nit: Please add somewhere to this function:
stati
pkalinnikov
2016/07/25 11:41:11
Done.
|
ASSERT_EQ(ruleset_size, |
- base::WriteFile(unique_temp_path, suffix.data(), ruleset_size)); |
+ base::WriteFile(unique_temp_path, ruleset_data, ruleset_size)); |
+ |
ruleset_file->Initialize(unique_temp_path, base::File::FLAG_OPEN | |
base::File::FLAG_READ | |
base::File::FLAG_SHARE_DELETE); |