Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(468)

Unified Diff: components/subresource_filter/core/common/test_ruleset_creator.cc

Issue 2661433002: Introduce VerifiedRulesetDealer and its async Handle. (Closed)
Patch Set: Refactor tests. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/subresource_filter/core/common/test_ruleset_creator.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 08cd6271e926708d5847ce21c3489635a3a5344d..81aabf832c0e8e7a32ad2d6a81eeb4941258bbe1 100644
--- a/components/subresource_filter/core/common/test_ruleset_creator.cc
+++ b/components/subresource_filter/core/common/test_ruleset_creator.cc
@@ -4,6 +4,8 @@
#include "components/subresource_filter/core/common/test_ruleset_creator.h"
+#include <string>
+
#include "base/files/file_util.h"
#include "base/logging.h"
#include "base/strings/string_number_conversions.h"
@@ -21,6 +23,15 @@ namespace {
// The methods below assume that char and uint8_t are interchangeable.
static_assert(CHAR_BIT == 8, "Assumed char was 8 bits.");
+void WriteRulesetContents(const std::vector<uint8_t>& contents,
+ base::FilePath path) {
+ int ruleset_size_as_int = base::checked_cast<int>(contents.size());
+ int num_bytes_written =
+ base::WriteFile(path, reinterpret_cast<const char*>(contents.data()),
+ ruleset_size_as_int);
+ ASSERT_EQ(ruleset_size_as_int, num_bytes_written);
+}
+
std::vector<uint8_t> SerializeUnindexedRulesetWithMultipleRules(
const std::vector<proto::UrlRule>& rules) {
std::string ruleset_contents;
@@ -65,6 +76,33 @@ base::File TestRuleset::Open(const TestRuleset& ruleset) {
return file;
}
+// static
+void TestRuleset::CorruptByTruncating(const TestRuleset& ruleset,
+ size_t tail_size) {
+ ASSERT_GT(tail_size, 0u);
+ ASSERT_FALSE(ruleset.contents.empty());
+ std::vector<uint8_t> new_contents = ruleset.contents;
+
+ const size_t new_size =
+ tail_size < new_contents.size() ? new_contents.size() - tail_size : 0;
+ new_contents.resize(new_size);
+ WriteRulesetContents(new_contents, ruleset.path);
+}
+
+// static
+void TestRuleset::CorruptByFilling(const TestRuleset& ruleset,
+ size_t from,
+ size_t to,
+ uint8_t fill_with) {
+ ASSERT_LT(from, to);
+ ASSERT_LE(to, ruleset.contents.size());
+
+ std::vector<uint8_t> new_contents = ruleset.contents;
+ for (size_t i = from; i < to; ++i)
+ new_contents[i] = fill_with;
+ WriteRulesetContents(new_contents, ruleset.path);
+}
+
// TestRulesetPair -------------------------------------------------------------
TestRulesetPair::TestRulesetPair() = default;
@@ -93,6 +131,21 @@ void TestRulesetCreator::CreateUnindexedRulesetToDisallowURLsWithPathSuffix(
test_unindexed_ruleset));
}
+void TestRulesetCreator::CreateRulesetToDisallowURLsWithManySuffixes(
+ base::StringPiece suffix,
+ int num_of_suffixes,
+ TestRulesetPair* test_ruleset_pair) {
+ DCHECK(test_ruleset_pair);
+
+ std::vector<proto::UrlRule> rules;
+ for (int i = 0; i < num_of_suffixes; ++i) {
+ std::string current_suffix =
+ suffix.as_string() + '_' + base::IntToString(i);
+ rules.push_back(CreateSuffixRule(current_suffix));
+ }
+ CreateRulesetWithRules(rules, test_ruleset_pair);
+}
+
void TestRulesetCreator::CreateRulesetWithRules(
const std::vector<proto::UrlRule>& rules,
TestRulesetPair* test_ruleset_pair) {
@@ -119,11 +172,7 @@ void TestRulesetCreator::CreateTestRulesetFromContents(
ruleset->contents = std::move(ruleset_contents);
ASSERT_NO_FATAL_FAILURE(GetUniqueTemporaryPath(&ruleset->path));
- int ruleset_size_as_int = base::checked_cast<int>(ruleset->contents.size());
- int num_bytes_written = base::WriteFile(
- ruleset->path, reinterpret_cast<const char*>(ruleset->contents.data()),
- ruleset_size_as_int);
- ASSERT_EQ(ruleset_size_as_int, num_bytes_written);
+ WriteRulesetContents(ruleset->contents, ruleset->path);
}
} // namespace testing
« no previous file with comments | « components/subresource_filter/core/common/test_ruleset_creator.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698