OLD | NEW |
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 <limits> | 5 #include <limits> |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/string16.h" | 8 #include "base/string16.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 scoped_ptr<Value> sought_value(Value::CreateIntegerValue(42)); | 98 scoped_ptr<Value> sought_value(Value::CreateIntegerValue(42)); |
99 scoped_ptr<Value> not_found_value(Value::CreateBooleanValue(false)); | 99 scoped_ptr<Value> not_found_value(Value::CreateBooleanValue(false)); |
100 | 100 |
101 ASSERT_NE(mixed_list->end(), mixed_list->Find(*sought_value)); | 101 ASSERT_NE(mixed_list->end(), mixed_list->Find(*sought_value)); |
102 ASSERT_TRUE((*mixed_list->Find(*sought_value))->GetAsInteger(&int_value)); | 102 ASSERT_TRUE((*mixed_list->Find(*sought_value))->GetAsInteger(&int_value)); |
103 ASSERT_EQ(42, int_value); | 103 ASSERT_EQ(42, int_value); |
104 ASSERT_EQ(mixed_list->end(), mixed_list->Find(*not_found_value)); | 104 ASSERT_EQ(mixed_list->end(), mixed_list->Find(*not_found_value)); |
105 } | 105 } |
106 | 106 |
107 TEST(ValuesTest, BinaryValue) { | 107 TEST(ValuesTest, BinaryValue) { |
108 char* buffer = NULL; | 108 // Default constructor creates a BinaryValue with a null buffer and size 0. |
109 // Passing a null buffer pointer doesn't yield a BinaryValue | 109 scoped_ptr<BinaryValue> binary(new BinaryValue()); |
110 scoped_ptr<BinaryValue> binary(BinaryValue::Create(buffer, 0)); | 110 ASSERT_TRUE(binary.get()); |
111 ASSERT_FALSE(binary.get()); | 111 ASSERT_EQ(NULL, binary->GetBuffer()); |
| 112 ASSERT_EQ(0U, binary->GetSize()); |
112 | 113 |
113 // If you want to represent an empty binary value, use a zero-length buffer. | 114 // Test the common case of a non-empty buffer |
114 buffer = new char[1]; | 115 char* buffer = new char[15]; |
115 ASSERT_TRUE(buffer); | 116 binary.reset(new BinaryValue(scoped_ptr<char>(buffer), 15)); |
116 binary.reset(BinaryValue::Create(buffer, 0)); | |
117 ASSERT_TRUE(binary.get()); | 117 ASSERT_TRUE(binary.get()); |
118 ASSERT_TRUE(binary->GetBuffer()); | 118 ASSERT_TRUE(binary->GetBuffer()); |
119 ASSERT_EQ(buffer, binary->GetBuffer()); | 119 ASSERT_EQ(buffer, binary->GetBuffer()); |
120 ASSERT_EQ(0U, binary->GetSize()); | |
121 | |
122 // Test the common case of a non-empty buffer | |
123 buffer = new char[15]; | |
124 binary.reset(BinaryValue::Create(buffer, 15)); | |
125 ASSERT_TRUE(binary.get()); | |
126 ASSERT_TRUE(binary->GetBuffer()); | |
127 ASSERT_EQ(buffer, binary->GetBuffer()); | |
128 ASSERT_EQ(15U, binary->GetSize()); | 120 ASSERT_EQ(15U, binary->GetSize()); |
129 | 121 |
130 char stack_buffer[42]; | 122 char stack_buffer[42]; |
131 memset(stack_buffer, '!', 42); | 123 memset(stack_buffer, '!', 42); |
132 binary.reset(BinaryValue::CreateWithCopiedBuffer(stack_buffer, 42)); | 124 binary.reset(BinaryValue::CreateWithCopiedBuffer(stack_buffer, 42)); |
133 ASSERT_TRUE(binary.get()); | 125 ASSERT_TRUE(binary.get()); |
134 ASSERT_TRUE(binary->GetBuffer()); | 126 ASSERT_TRUE(binary->GetBuffer()); |
135 ASSERT_NE(stack_buffer, binary->GetBuffer()); | 127 ASSERT_NE(stack_buffer, binary->GetBuffer()); |
136 ASSERT_EQ(42U, binary->GetSize()); | 128 ASSERT_EQ(42U, binary->GetSize()); |
137 ASSERT_EQ(0, memcmp(stack_buffer, binary->GetBuffer(), binary->GetSize())); | 129 ASSERT_EQ(0, memcmp(stack_buffer, binary->GetBuffer(), binary->GetSize())); |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 FundamentalValue* original_int = Value::CreateIntegerValue(42); | 335 FundamentalValue* original_int = Value::CreateIntegerValue(42); |
344 original_dict.Set("int", original_int); | 336 original_dict.Set("int", original_int); |
345 FundamentalValue* original_double = Value::CreateDoubleValue(3.14); | 337 FundamentalValue* original_double = Value::CreateDoubleValue(3.14); |
346 original_dict.Set("double", original_double); | 338 original_dict.Set("double", original_double); |
347 StringValue* original_string = Value::CreateStringValue("hello"); | 339 StringValue* original_string = Value::CreateStringValue("hello"); |
348 original_dict.Set("string", original_string); | 340 original_dict.Set("string", original_string); |
349 StringValue* original_string16 = | 341 StringValue* original_string16 = |
350 Value::CreateStringValue(ASCIIToUTF16("hello16")); | 342 Value::CreateStringValue(ASCIIToUTF16("hello16")); |
351 original_dict.Set("string16", original_string16); | 343 original_dict.Set("string16", original_string16); |
352 | 344 |
353 char* original_buffer = new char[42]; | 345 scoped_ptr<char> original_buffer(new char[42]); |
354 memset(original_buffer, '!', 42); | 346 memset(original_buffer.get(), '!', 42); |
355 BinaryValue* original_binary = BinaryValue::Create(original_buffer, 42); | 347 BinaryValue* original_binary = new BinaryValue(original_buffer.Pass(), 42); |
356 original_dict.Set("binary", original_binary); | 348 original_dict.Set("binary", original_binary); |
357 | 349 |
358 ListValue* original_list = new ListValue(); | 350 ListValue* original_list = new ListValue(); |
359 FundamentalValue* original_list_element_0 = Value::CreateIntegerValue(0); | 351 FundamentalValue* original_list_element_0 = Value::CreateIntegerValue(0); |
360 original_list->Append(original_list_element_0); | 352 original_list->Append(original_list_element_0); |
361 FundamentalValue* original_list_element_1 = Value::CreateIntegerValue(1); | 353 FundamentalValue* original_list_element_1 = Value::CreateIntegerValue(1); |
362 original_list->Append(original_list_element_1); | 354 original_list->Append(original_list_element_1); |
363 original_dict.Set("list", original_list); | 355 original_dict.Set("list", original_list); |
364 | 356 |
365 DictionaryValue* original_nested_dictionary = new DictionaryValue(); | 357 DictionaryValue* original_nested_dictionary = new DictionaryValue(); |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
551 FundamentalValue* original_int = Value::CreateIntegerValue(42); | 543 FundamentalValue* original_int = Value::CreateIntegerValue(42); |
552 original_dict.Set("int", original_int); | 544 original_dict.Set("int", original_int); |
553 FundamentalValue* original_double = Value::CreateDoubleValue(3.14); | 545 FundamentalValue* original_double = Value::CreateDoubleValue(3.14); |
554 original_dict.Set("double", original_double); | 546 original_dict.Set("double", original_double); |
555 StringValue* original_string = Value::CreateStringValue("hello"); | 547 StringValue* original_string = Value::CreateStringValue("hello"); |
556 original_dict.Set("string", original_string); | 548 original_dict.Set("string", original_string); |
557 StringValue* original_string16 = | 549 StringValue* original_string16 = |
558 Value::CreateStringValue(ASCIIToUTF16("hello16")); | 550 Value::CreateStringValue(ASCIIToUTF16("hello16")); |
559 original_dict.Set("string16", original_string16); | 551 original_dict.Set("string16", original_string16); |
560 | 552 |
561 char* original_buffer = new char[42]; | 553 scoped_ptr<char> original_buffer(new char[42]); |
562 memset(original_buffer, '!', 42); | 554 memset(original_buffer.get(), '!', 42); |
563 BinaryValue* original_binary = BinaryValue::Create(original_buffer, 42); | 555 BinaryValue* original_binary = new BinaryValue(original_buffer.Pass(), 42); |
564 original_dict.Set("binary", original_binary); | 556 original_dict.Set("binary", original_binary); |
565 | 557 |
566 ListValue* original_list = new ListValue(); | 558 ListValue* original_list = new ListValue(); |
567 FundamentalValue* original_list_element_0 = Value::CreateIntegerValue(0); | 559 FundamentalValue* original_list_element_0 = Value::CreateIntegerValue(0); |
568 original_list->Append(original_list_element_0); | 560 original_list->Append(original_list_element_0); |
569 FundamentalValue* original_list_element_1 = Value::CreateIntegerValue(1); | 561 FundamentalValue* original_list_element_1 = Value::CreateIntegerValue(1); |
570 original_list->Append(original_list_element_1); | 562 original_list->Append(original_list_element_1); |
571 original_dict.Set("list", original_list); | 563 original_dict.Set("list", original_list); |
572 | 564 |
573 Value* original_dict_value = &original_dict; | 565 Value* original_dict_value = &original_dict; |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 seen2 = true; | 772 seen2 = true; |
781 } else { | 773 } else { |
782 ADD_FAILURE(); | 774 ADD_FAILURE(); |
783 } | 775 } |
784 } | 776 } |
785 EXPECT_TRUE(seen1); | 777 EXPECT_TRUE(seen1); |
786 EXPECT_TRUE(seen2); | 778 EXPECT_TRUE(seen2); |
787 } | 779 } |
788 | 780 |
789 } // namespace base | 781 } // namespace base |
OLD | NEW |