| 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 base::FundamentalValue sought_value(42); | 98 base::FundamentalValue sought_value(42); |
| 99 base::FundamentalValue not_found_value(false); | 99 base::FundamentalValue not_found_value(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_array<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 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 original_dict.Set("bool", original_bool); | 333 original_dict.Set("bool", original_bool); |
| 342 FundamentalValue* original_int = new FundamentalValue(42); | 334 FundamentalValue* original_int = new FundamentalValue(42); |
| 343 original_dict.Set("int", original_int); | 335 original_dict.Set("int", original_int); |
| 344 FundamentalValue* original_double = new FundamentalValue(3.14); | 336 FundamentalValue* original_double = new FundamentalValue(3.14); |
| 345 original_dict.Set("double", original_double); | 337 original_dict.Set("double", original_double); |
| 346 StringValue* original_string = new StringValue("hello"); | 338 StringValue* original_string = new StringValue("hello"); |
| 347 original_dict.Set("string", original_string); | 339 original_dict.Set("string", original_string); |
| 348 StringValue* original_string16 = new StringValue(ASCIIToUTF16("hello16")); | 340 StringValue* original_string16 = new StringValue(ASCIIToUTF16("hello16")); |
| 349 original_dict.Set("string16", original_string16); | 341 original_dict.Set("string16", original_string16); |
| 350 | 342 |
| 351 char* original_buffer = new char[42]; | 343 scoped_array<char> original_buffer(new char[42]); |
| 352 memset(original_buffer, '!', 42); | 344 memset(original_buffer.get(), '!', 42); |
| 353 BinaryValue* original_binary = BinaryValue::Create(original_buffer, 42); | 345 BinaryValue* original_binary = new BinaryValue(original_buffer.Pass(), 42); |
| 354 original_dict.Set("binary", original_binary); | 346 original_dict.Set("binary", original_binary); |
| 355 | 347 |
| 356 ListValue* original_list = new ListValue(); | 348 ListValue* original_list = new ListValue(); |
| 357 FundamentalValue* original_list_element_0 = new FundamentalValue(0); | 349 FundamentalValue* original_list_element_0 = new FundamentalValue(0); |
| 358 original_list->Append(original_list_element_0); | 350 original_list->Append(original_list_element_0); |
| 359 FundamentalValue* original_list_element_1 = new FundamentalValue(1); | 351 FundamentalValue* original_list_element_1 = new FundamentalValue(1); |
| 360 original_list->Append(original_list_element_1); | 352 original_list->Append(original_list_element_1); |
| 361 original_dict.Set("list", original_list); | 353 original_dict.Set("list", original_list); |
| 362 | 354 |
| 363 DictionaryValue* original_nested_dictionary = new DictionaryValue(); | 355 DictionaryValue* original_nested_dictionary = new DictionaryValue(); |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 original_dict.Set("bool", original_bool); | 540 original_dict.Set("bool", original_bool); |
| 549 FundamentalValue* original_int = new FundamentalValue(42); | 541 FundamentalValue* original_int = new FundamentalValue(42); |
| 550 original_dict.Set("int", original_int); | 542 original_dict.Set("int", original_int); |
| 551 FundamentalValue* original_double = new FundamentalValue(3.14); | 543 FundamentalValue* original_double = new FundamentalValue(3.14); |
| 552 original_dict.Set("double", original_double); | 544 original_dict.Set("double", original_double); |
| 553 StringValue* original_string = new StringValue("hello"); | 545 StringValue* original_string = new StringValue("hello"); |
| 554 original_dict.Set("string", original_string); | 546 original_dict.Set("string", original_string); |
| 555 StringValue* original_string16 = new StringValue(ASCIIToUTF16("hello16")); | 547 StringValue* original_string16 = new StringValue(ASCIIToUTF16("hello16")); |
| 556 original_dict.Set("string16", original_string16); | 548 original_dict.Set("string16", original_string16); |
| 557 | 549 |
| 558 char* original_buffer = new char[42]; | 550 scoped_array<char> original_buffer(new char[42]); |
| 559 memset(original_buffer, '!', 42); | 551 memset(original_buffer.get(), '!', 42); |
| 560 BinaryValue* original_binary = BinaryValue::Create(original_buffer, 42); | 552 BinaryValue* original_binary = new BinaryValue(original_buffer.Pass(), 42); |
| 561 original_dict.Set("binary", original_binary); | 553 original_dict.Set("binary", original_binary); |
| 562 | 554 |
| 563 ListValue* original_list = new ListValue(); | 555 ListValue* original_list = new ListValue(); |
| 564 FundamentalValue* original_list_element_0 = new FundamentalValue(0); | 556 FundamentalValue* original_list_element_0 = new FundamentalValue(0); |
| 565 original_list->Append(original_list_element_0); | 557 original_list->Append(original_list_element_0); |
| 566 FundamentalValue* original_list_element_1 = new FundamentalValue(1); | 558 FundamentalValue* original_list_element_1 = new FundamentalValue(1); |
| 567 original_list->Append(original_list_element_1); | 559 original_list->Append(original_list_element_1); |
| 568 original_dict.Set("list", original_list); | 560 original_dict.Set("list", original_list); |
| 569 | 561 |
| 570 Value* original_dict_value = &original_dict; | 562 Value* original_dict_value = &original_dict; |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 777 seen2 = true; | 769 seen2 = true; |
| 778 } else { | 770 } else { |
| 779 ADD_FAILURE(); | 771 ADD_FAILURE(); |
| 780 } | 772 } |
| 781 } | 773 } |
| 782 EXPECT_TRUE(seen1); | 774 EXPECT_TRUE(seen1); |
| 783 EXPECT_TRUE(seen2); | 775 EXPECT_TRUE(seen2); |
| 784 } | 776 } |
| 785 | 777 |
| 786 } // namespace base | 778 } // namespace base |
| OLD | NEW |