OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
| 5 #include "chrome/browser/content_settings/content_settings_rule.h" |
| 6 |
5 #include <list> | 7 #include <list> |
6 | 8 |
7 #include "chrome/common/content_settings_pattern.h" | 9 #include "chrome/common/content_settings_pattern.h" |
8 #include "chrome/browser/content_settings/content_settings_rule.h" | 10 #include "extensions/common/constants.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
10 | 12 |
11 namespace content_settings { | 13 namespace content_settings { |
12 | 14 |
13 namespace { | 15 namespace { |
14 | 16 |
15 class ListIterator : public RuleIterator { | 17 class ListIterator : public RuleIterator { |
16 public: | 18 public: |
17 explicit ListIterator(const std::list<Rule>& rules) | 19 explicit ListIterator(const std::list<Rule>& rules) |
18 : rules_(rules) {} | 20 : rules_(rules) {} |
(...skipping 14 matching lines...) Expand all Loading... |
33 } | 35 } |
34 | 36 |
35 private: | 37 private: |
36 std::list<Rule> rules_; | 38 std::list<Rule> rules_; |
37 }; | 39 }; |
38 | 40 |
39 } // namespace | 41 } // namespace |
40 | 42 |
41 TEST(RuleTest, ConcatenationIterator) { | 43 TEST(RuleTest, ConcatenationIterator) { |
42 std::list<Rule> rules1; | 44 std::list<Rule> rules1; |
43 rules1.push_back(Rule(ContentSettingsPattern::FromString("a"), | 45 rules1.push_back(Rule( |
44 ContentSettingsPattern::Wildcard(), | 46 ContentSettingsPattern::FromString(extensions::kExtensionScheme, "a"), |
45 new base::FundamentalValue(0))); | 47 ContentSettingsPattern::Wildcard(), |
46 rules1.push_back(Rule(ContentSettingsPattern::FromString("b"), | 48 new base::FundamentalValue(0))); |
47 ContentSettingsPattern::Wildcard(), | 49 rules1.push_back(Rule( |
48 new base::FundamentalValue(0))); | 50 ContentSettingsPattern::FromString(extensions::kExtensionScheme, "b"), |
| 51 ContentSettingsPattern::Wildcard(), |
| 52 new base::FundamentalValue(0))); |
49 std::list<Rule> rules2; | 53 std::list<Rule> rules2; |
50 rules2.push_back(Rule(ContentSettingsPattern::FromString("c"), | 54 rules2.push_back(Rule( |
51 ContentSettingsPattern::Wildcard(), | 55 ContentSettingsPattern::FromString(extensions::kExtensionScheme, "c"), |
52 new base::FundamentalValue(0))); | 56 ContentSettingsPattern::Wildcard(), |
53 rules2.push_back(Rule(ContentSettingsPattern::FromString("d"), | 57 new base::FundamentalValue(0))); |
54 ContentSettingsPattern::Wildcard(), | 58 rules2.push_back(Rule( |
55 new base::FundamentalValue(0))); | 59 ContentSettingsPattern::FromString(extensions::kExtensionScheme, "d"), |
| 60 ContentSettingsPattern::Wildcard(), |
| 61 new base::FundamentalValue(0))); |
56 | 62 |
57 ScopedVector<RuleIterator> iterators; | 63 ScopedVector<RuleIterator> iterators; |
58 iterators.push_back(new ListIterator(rules1)); | 64 iterators.push_back(new ListIterator(rules1)); |
59 iterators.push_back(new ListIterator(rules2)); | 65 iterators.push_back(new ListIterator(rules2)); |
60 ConcatenationIterator concatenation_iterator(&iterators, NULL); | 66 ConcatenationIterator concatenation_iterator(&iterators, NULL); |
61 | 67 |
62 Rule rule; | 68 Rule rule; |
63 ASSERT_TRUE(concatenation_iterator.HasNext()); | 69 ASSERT_TRUE(concatenation_iterator.HasNext()); |
64 rule = concatenation_iterator.Next(); | 70 rule = concatenation_iterator.Next(); |
65 EXPECT_EQ(rule.primary_pattern, ContentSettingsPattern::FromString("a")); | 71 EXPECT_EQ(rule.primary_pattern, |
| 72 ContentSettingsPattern::FromString(extensions::kExtensionScheme, |
| 73 "a")); |
66 | 74 |
67 ASSERT_TRUE(concatenation_iterator.HasNext()); | 75 ASSERT_TRUE(concatenation_iterator.HasNext()); |
68 rule = concatenation_iterator.Next(); | 76 rule = concatenation_iterator.Next(); |
69 EXPECT_EQ(rule.primary_pattern, ContentSettingsPattern::FromString("b")); | 77 EXPECT_EQ(rule.primary_pattern, |
| 78 ContentSettingsPattern::FromString(extensions::kExtensionScheme, |
| 79 "b")); |
70 | 80 |
71 ASSERT_TRUE(concatenation_iterator.HasNext()); | 81 ASSERT_TRUE(concatenation_iterator.HasNext()); |
72 rule = concatenation_iterator.Next(); | 82 rule = concatenation_iterator.Next(); |
73 EXPECT_EQ(rule.primary_pattern, ContentSettingsPattern::FromString("c")); | 83 EXPECT_EQ(rule.primary_pattern, |
| 84 ContentSettingsPattern::FromString(extensions::kExtensionScheme, |
| 85 "c")); |
74 | 86 |
75 ASSERT_TRUE(concatenation_iterator.HasNext()); | 87 ASSERT_TRUE(concatenation_iterator.HasNext()); |
76 rule = concatenation_iterator.Next(); | 88 rule = concatenation_iterator.Next(); |
77 EXPECT_EQ(rule.primary_pattern, ContentSettingsPattern::FromString("d")); | 89 EXPECT_EQ(rule.primary_pattern, |
| 90 ContentSettingsPattern::FromString(extensions::kExtensionScheme, |
| 91 "d")); |
78 | 92 |
79 EXPECT_FALSE(concatenation_iterator.HasNext()); | 93 EXPECT_FALSE(concatenation_iterator.HasNext()); |
80 } | 94 } |
81 | 95 |
82 } // namespace content_settings | 96 } // namespace content_settings |
OLD | NEW |