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

Side by Side Diff: chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc

Issue 106433007: Update some uses of Value in chrome/browser to use the base:: namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 6 years, 12 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/extensions/api/declarative_webrequest/webrequest_condit ion_attribute.h" 5 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_condit ion_attribute.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 18 matching lines...) Expand all
29 namespace extensions { 29 namespace extensions {
30 30
31 namespace keys = declarative_webrequest_constants; 31 namespace keys = declarative_webrequest_constants;
32 32
33 TEST(WebRequestConditionAttributeTest, CreateConditionAttribute) { 33 TEST(WebRequestConditionAttributeTest, CreateConditionAttribute) {
34 // Necessary for TestURLRequest. 34 // Necessary for TestURLRequest.
35 base::MessageLoop message_loop(base::MessageLoop::TYPE_IO); 35 base::MessageLoop message_loop(base::MessageLoop::TYPE_IO);
36 36
37 std::string error; 37 std::string error;
38 scoped_refptr<const WebRequestConditionAttribute> result; 38 scoped_refptr<const WebRequestConditionAttribute> result;
39 StringValue string_value("main_frame"); 39 base::StringValue string_value("main_frame");
40 ListValue resource_types; 40 base::ListValue resource_types;
41 resource_types.Append(new base::StringValue("main_frame")); 41 resource_types.Append(new base::StringValue("main_frame"));
42 42
43 // Test wrong condition name passed. 43 // Test wrong condition name passed.
44 error.clear(); 44 error.clear();
45 result = WebRequestConditionAttribute::Create( 45 result = WebRequestConditionAttribute::Create(
46 kUnknownConditionName, &resource_types, &error); 46 kUnknownConditionName, &resource_types, &error);
47 EXPECT_FALSE(error.empty()); 47 EXPECT_FALSE(error.empty());
48 EXPECT_FALSE(result.get()); 48 EXPECT_FALSE(result.get());
49 49
50 // Test wrong data type passed 50 // Test wrong data type passed
(...skipping 18 matching lines...) Expand all
69 EXPECT_EQ(WebRequestConditionAttribute::CONDITION_RESOURCE_TYPE, 69 EXPECT_EQ(WebRequestConditionAttribute::CONDITION_RESOURCE_TYPE,
70 result->GetType()); 70 result->GetType());
71 EXPECT_EQ(std::string(keys::kResourceTypeKey), result->GetName()); 71 EXPECT_EQ(std::string(keys::kResourceTypeKey), result->GetName());
72 } 72 }
73 73
74 TEST(WebRequestConditionAttributeTest, ResourceType) { 74 TEST(WebRequestConditionAttributeTest, ResourceType) {
75 // Necessary for TestURLRequest. 75 // Necessary for TestURLRequest.
76 base::MessageLoop message_loop(base::MessageLoop::TYPE_IO); 76 base::MessageLoop message_loop(base::MessageLoop::TYPE_IO);
77 77
78 std::string error; 78 std::string error;
79 ListValue resource_types; 79 base::ListValue resource_types;
80 // The 'sub_frame' value is chosen arbitrarily, so as the corresponding 80 // The 'sub_frame' value is chosen arbitrarily, so as the corresponding
81 // ResourceType::Type is not 0, the default value. 81 // ResourceType::Type is not 0, the default value.
82 resource_types.Append(new base::StringValue("sub_frame")); 82 resource_types.Append(new base::StringValue("sub_frame"));
83 83
84 scoped_refptr<const WebRequestConditionAttribute> attribute = 84 scoped_refptr<const WebRequestConditionAttribute> attribute =
85 WebRequestConditionAttribute::Create( 85 WebRequestConditionAttribute::Create(
86 keys::kResourceTypeKey, &resource_types, &error); 86 keys::kResourceTypeKey, &resource_types, &error);
87 EXPECT_EQ("", error); 87 EXPECT_EQ("", error);
88 ASSERT_TRUE(attribute.get()); 88 ASSERT_TRUE(attribute.get());
89 EXPECT_EQ(std::string(keys::kResourceTypeKey), attribute->GetName()); 89 EXPECT_EQ(std::string(keys::kResourceTypeKey), attribute->GetName());
(...skipping 30 matching lines...) Expand all
120 120
121 net::TestURLRequestContext context; 121 net::TestURLRequestContext context;
122 net::TestDelegate delegate; 122 net::TestDelegate delegate;
123 net::TestURLRequest url_request(test_server.GetURL("files/headers.html"), 123 net::TestURLRequest url_request(test_server.GetURL("files/headers.html"),
124 net::DEFAULT_PRIORITY, 124 net::DEFAULT_PRIORITY,
125 &delegate, 125 &delegate,
126 &context); 126 &context);
127 url_request.Start(); 127 url_request.Start();
128 base::MessageLoop::current()->Run(); 128 base::MessageLoop::current()->Run();
129 129
130 ListValue content_types; 130 base::ListValue content_types;
131 content_types.Append(new base::StringValue("text/plain")); 131 content_types.Append(new base::StringValue("text/plain"));
132 scoped_refptr<const WebRequestConditionAttribute> attribute_include = 132 scoped_refptr<const WebRequestConditionAttribute> attribute_include =
133 WebRequestConditionAttribute::Create( 133 WebRequestConditionAttribute::Create(
134 keys::kContentTypeKey, &content_types, &error); 134 keys::kContentTypeKey, &content_types, &error);
135 EXPECT_EQ("", error); 135 EXPECT_EQ("", error);
136 ASSERT_TRUE(attribute_include.get()); 136 ASSERT_TRUE(attribute_include.get());
137 EXPECT_FALSE(attribute_include->IsFulfilled( 137 EXPECT_FALSE(attribute_include->IsFulfilled(
138 WebRequestData(&url_request, ON_BEFORE_REQUEST, 138 WebRequestData(&url_request, ON_BEFORE_REQUEST,
139 url_request.response_headers()))); 139 url_request.response_headers())));
140 EXPECT_TRUE(attribute_include->IsFulfilled( 140 EXPECT_TRUE(attribute_include->IsFulfilled(
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 251
252 // Check that exactly all active stages are considered in this test. 252 // Check that exactly all active stages are considered in this test.
253 unsigned int covered_stages = 0; 253 unsigned int covered_stages = 0;
254 for (size_t i = 0; i < arraysize(active_stages); ++i) 254 for (size_t i = 0; i < arraysize(active_stages); ++i)
255 covered_stages |= active_stages[i].first; 255 covered_stages |= active_stages[i].first;
256 EXPECT_EQ(kActiveStages, covered_stages); 256 EXPECT_EQ(kActiveStages, covered_stages);
257 257
258 std::string error; 258 std::string error;
259 259
260 // Create an attribute with an empty set of applicable stages. 260 // Create an attribute with an empty set of applicable stages.
261 ListValue empty_list; 261 base::ListValue empty_list;
262 scoped_refptr<const WebRequestConditionAttribute> empty_attribute = 262 scoped_refptr<const WebRequestConditionAttribute> empty_attribute =
263 WebRequestConditionAttribute::Create(keys::kStagesKey, 263 WebRequestConditionAttribute::Create(keys::kStagesKey,
264 &empty_list, 264 &empty_list,
265 &error); 265 &error);
266 EXPECT_EQ("", error); 266 EXPECT_EQ("", error);
267 ASSERT_TRUE(empty_attribute.get()); 267 ASSERT_TRUE(empty_attribute.get());
268 EXPECT_EQ(std::string(keys::kStagesKey), empty_attribute->GetName()); 268 EXPECT_EQ(std::string(keys::kStagesKey), empty_attribute->GetName());
269 269
270 // Create an attribute with all possible applicable stages. 270 // Create an attribute with all possible applicable stages.
271 ListValue all_stages; 271 base::ListValue all_stages;
272 for (size_t i = 0; i < arraysize(active_stages); ++i) 272 for (size_t i = 0; i < arraysize(active_stages); ++i)
273 all_stages.AppendString(active_stages[i].second); 273 all_stages.AppendString(active_stages[i].second);
274 scoped_refptr<const WebRequestConditionAttribute> attribute_with_all = 274 scoped_refptr<const WebRequestConditionAttribute> attribute_with_all =
275 WebRequestConditionAttribute::Create(keys::kStagesKey, 275 WebRequestConditionAttribute::Create(keys::kStagesKey,
276 &all_stages, 276 &all_stages,
277 &error); 277 &error);
278 EXPECT_EQ("", error); 278 EXPECT_EQ("", error);
279 ASSERT_TRUE(attribute_with_all.get()); 279 ASSERT_TRUE(attribute_with_all.get());
280 EXPECT_EQ(std::string(keys::kStagesKey), attribute_with_all->GetName()); 280 EXPECT_EQ(std::string(keys::kStagesKey), attribute_with_all->GetName());
281 281
282 // Create one attribute for each single stage, to be applicable in that stage. 282 // Create one attribute for each single stage, to be applicable in that stage.
283 std::vector<scoped_refptr<const WebRequestConditionAttribute> > 283 std::vector<scoped_refptr<const WebRequestConditionAttribute> >
284 one_stage_attributes; 284 one_stage_attributes;
285 285
286 for (size_t i = 0; i < arraysize(active_stages); ++i) { 286 for (size_t i = 0; i < arraysize(active_stages); ++i) {
287 ListValue single_stage_list; 287 base::ListValue single_stage_list;
288 single_stage_list.AppendString(active_stages[i].second); 288 single_stage_list.AppendString(active_stages[i].second);
289 one_stage_attributes.push_back( 289 one_stage_attributes.push_back(
290 WebRequestConditionAttribute::Create(keys::kStagesKey, 290 WebRequestConditionAttribute::Create(keys::kStagesKey,
291 &single_stage_list, 291 &single_stage_list,
292 &error)); 292 &error));
293 EXPECT_EQ("", error); 293 EXPECT_EQ("", error);
294 ASSERT_TRUE(one_stage_attributes.back().get() != NULL); 294 ASSERT_TRUE(one_stage_attributes.back().get() != NULL);
295 } 295 }
296 296
297 const GURL url_empty; 297 const GURL url_empty;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 out->push_back(std::vector<const std::string*>()); 335 out->push_back(std::vector<const std::string*>());
336 for (size_t j = next; j < next + sizes[i]; ++j) { 336 for (size_t j = next; j < next + sizes[i]; ++j) {
337 out->back().push_back(&(array[j])); 337 out->back().push_back(&(array[j]));
338 } 338 }
339 next += sizes[i]; 339 next += sizes[i];
340 } 340 }
341 } 341 }
342 342
343 // Builds a DictionaryValue from an array of the form {name1, value1, name2, 343 // Builds a DictionaryValue from an array of the form {name1, value1, name2,
344 // value2, ...}. Values for the same key are grouped in a ListValue. 344 // value2, ...}. Values for the same key are grouped in a ListValue.
345 scoped_ptr<DictionaryValue> GetDictionaryFromArray( 345 scoped_ptr<base::DictionaryValue> GetDictionaryFromArray(
346 const std::vector<const std::string*>& array) { 346 const std::vector<const std::string*>& array) {
347 const size_t length = array.size(); 347 const size_t length = array.size();
348 CHECK(length % 2 == 0); 348 CHECK(length % 2 == 0);
349 349
350 scoped_ptr<DictionaryValue> dictionary(new DictionaryValue); 350 scoped_ptr<base::DictionaryValue> dictionary(new base::DictionaryValue);
351 for (size_t i = 0; i < length; i += 2) { 351 for (size_t i = 0; i < length; i += 2) {
352 const std::string* name = array[i]; 352 const std::string* name = array[i];
353 const std::string* value = array[i+1]; 353 const std::string* value = array[i+1];
354 if (dictionary->HasKey(*name)) { 354 if (dictionary->HasKey(*name)) {
355 Value* entry = NULL; 355 base::Value* entry = NULL;
356 scoped_ptr<Value> entry_owned; 356 scoped_ptr<base::Value> entry_owned;
357 ListValue* list = NULL; 357 base::ListValue* list = NULL;
358 if (!dictionary->GetWithoutPathExpansion(*name, &entry)) 358 if (!dictionary->GetWithoutPathExpansion(*name, &entry))
359 return scoped_ptr<DictionaryValue>(); 359 return scoped_ptr<base::DictionaryValue>();
360 switch (entry->GetType()) { 360 switch (entry->GetType()) {
361 case Value::TYPE_STRING: // Replace the present string with a list. 361 case base::Value::TYPE_STRING:
362 list = new ListValue; 362 // Replace the present string with a list.
363 list = new base::ListValue;
363 // Ignoring return value, we already verified the entry is there. 364 // Ignoring return value, we already verified the entry is there.
364 dictionary->RemoveWithoutPathExpansion(*name, &entry_owned); 365 dictionary->RemoveWithoutPathExpansion(*name, &entry_owned);
365 list->Append(entry_owned.release()); 366 list->Append(entry_owned.release());
366 list->Append(new base::StringValue(*value)); 367 list->Append(new base::StringValue(*value));
367 dictionary->SetWithoutPathExpansion(*name, list); 368 dictionary->SetWithoutPathExpansion(*name, list);
368 break; 369 break;
369 case Value::TYPE_LIST: // Just append to the list. 370 case base::Value::TYPE_LIST: // Just append to the list.
370 CHECK(entry->GetAsList(&list)); 371 CHECK(entry->GetAsList(&list));
371 list->Append(new base::StringValue(*value)); 372 list->Append(new base::StringValue(*value));
372 break; 373 break;
373 default: 374 default:
374 NOTREACHED(); // We never put other Values here. 375 NOTREACHED(); // We never put other Values here.
375 return scoped_ptr<DictionaryValue>(); 376 return scoped_ptr<base::DictionaryValue>();
376 } 377 }
377 } else { 378 } else {
378 dictionary->SetString(*name, *value); 379 dictionary->SetString(*name, *value);
379 } 380 }
380 } 381 }
381 return dictionary.Pass(); 382 return dictionary.Pass();
382 } 383 }
383 384
384 // Returns whether the response headers from |url_request| satisfy the match 385 // Returns whether the response headers from |url_request| satisfy the match
385 // criteria given in |tests|. For at least one |i| all tests from |tests[i]| 386 // criteria given in |tests|. For at least one |i| all tests from |tests[i]|
386 // must pass. If |positive_test| is true, the dictionary is interpreted as the 387 // must pass. If |positive_test| is true, the dictionary is interpreted as the
387 // containsHeaders property of a RequestMatcher, otherwise as 388 // containsHeaders property of a RequestMatcher, otherwise as
388 // doesNotContainHeaders. 389 // doesNotContainHeaders.
389 void MatchAndCheck(const std::vector< std::vector<const std::string*> >& tests, 390 void MatchAndCheck(const std::vector< std::vector<const std::string*> >& tests,
390 const std::string& key, 391 const std::string& key,
391 RequestStage stage, 392 RequestStage stage,
392 net::URLRequest* url_request, 393 net::URLRequest* url_request,
393 bool* result) { 394 bool* result) {
394 ListValue contains_headers; 395 base::ListValue contains_headers;
395 for (size_t i = 0; i < tests.size(); ++i) { 396 for (size_t i = 0; i < tests.size(); ++i) {
396 scoped_ptr<DictionaryValue> temp(GetDictionaryFromArray(tests[i])); 397 scoped_ptr<base::DictionaryValue> temp(GetDictionaryFromArray(tests[i]));
397 ASSERT_TRUE(temp.get()); 398 ASSERT_TRUE(temp.get());
398 contains_headers.Append(temp.release()); 399 contains_headers.Append(temp.release());
399 } 400 }
400 401
401 std::string error; 402 std::string error;
402 scoped_refptr<const WebRequestConditionAttribute> attribute = 403 scoped_refptr<const WebRequestConditionAttribute> attribute =
403 WebRequestConditionAttribute::Create(key, &contains_headers, &error); 404 WebRequestConditionAttribute::Create(key, &contains_headers, &error);
404 ASSERT_EQ("", error); 405 ASSERT_EQ("", error);
405 ASSERT_TRUE(attribute.get()); 406 ASSERT_TRUE(attribute.get());
406 EXPECT_EQ(key, attribute->GetName()); 407 EXPECT_EQ(key, attribute->GetName());
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 keys::kValueEqualsKey, "valueB" 674 keys::kValueEqualsKey, "valueB"
674 }; 675 };
675 const size_t kExistingSize[] = { arraysize(kExisting) }; 676 const size_t kExistingSize[] = { arraysize(kExisting) };
676 GetArrayAsVector(kExisting, kExistingSize, 1u, &tests); 677 GetArrayAsVector(kExisting, kExistingSize, 1u, &tests);
677 MatchAndCheck( 678 MatchAndCheck(
678 tests, keys::kExcludeResponseHeadersKey, stage, &url_request, &result); 679 tests, keys::kExcludeResponseHeadersKey, stage, &url_request, &result);
679 EXPECT_FALSE(result); 680 EXPECT_FALSE(result);
680 } 681 }
681 682
682 } // namespace extensions 683 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698