Chromium Code Reviews| 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); |