OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/user_prefs/tracked/pref_hash_calculator.h" | 5 #include "components/user_prefs/tracked/pref_hash_calculator.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 } | 70 } |
71 | 71 |
72 // Tests the output against a known value to catch unexpected algorithm changes. | 72 // Tests the output against a known value to catch unexpected algorithm changes. |
73 // The test hashes below must NEVER be updated, the serialization algorithm used | 73 // The test hashes below must NEVER be updated, the serialization algorithm used |
74 // must always be able to generate data that will produce these exact hashes. | 74 // must always be able to generate data that will produce these exact hashes. |
75 TEST(PrefHashCalculatorTest, CatchHashChanges) { | 75 TEST(PrefHashCalculatorTest, CatchHashChanges) { |
76 static const char kSeed[] = "0123456789ABCDEF0123456789ABCDEF"; | 76 static const char kSeed[] = "0123456789ABCDEF0123456789ABCDEF"; |
77 static const char kDeviceId[] = "test_device_id1"; | 77 static const char kDeviceId[] = "test_device_id1"; |
78 | 78 |
79 std::unique_ptr<base::Value> null_value = base::Value::CreateNullValue(); | 79 std::unique_ptr<base::Value> null_value = base::Value::CreateNullValue(); |
80 std::unique_ptr<base::Value> bool_value(new base::FundamentalValue(false)); | 80 std::unique_ptr<base::Value> bool_value(new base::Value(false)); |
81 std::unique_ptr<base::Value> int_value( | 81 std::unique_ptr<base::Value> int_value(new base::Value(1234567890)); |
82 new base::FundamentalValue(1234567890)); | 82 std::unique_ptr<base::Value> double_value(new base::Value(123.0987654321)); |
83 std::unique_ptr<base::Value> double_value( | |
84 new base::FundamentalValue(123.0987654321)); | |
85 std::unique_ptr<base::Value> string_value( | 83 std::unique_ptr<base::Value> string_value( |
86 new base::StringValue("testing with special chars:\n<>{}:^^@#$\\/")); | 84 new base::StringValue("testing with special chars:\n<>{}:^^@#$\\/")); |
87 | 85 |
88 // For legacy reasons, we have to support pruning of empty lists/dictionaries | 86 // For legacy reasons, we have to support pruning of empty lists/dictionaries |
89 // and nested empty ists/dicts in the hash generation algorithm. | 87 // and nested empty ists/dicts in the hash generation algorithm. |
90 std::unique_ptr<base::DictionaryValue> nested_empty_dict( | 88 std::unique_ptr<base::DictionaryValue> nested_empty_dict( |
91 new base::DictionaryValue); | 89 new base::DictionaryValue); |
92 nested_empty_dict->Set("a", new base::DictionaryValue); | 90 nested_empty_dict->Set("a", new base::DictionaryValue); |
93 nested_empty_dict->Set("b", new base::ListValue); | 91 nested_empty_dict->Set("b", new base::ListValue); |
94 std::unique_ptr<base::ListValue> nested_empty_list(new base::ListValue); | 92 std::unique_ptr<base::ListValue> nested_empty_list(new base::ListValue); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 // As in PrefHashCalculatorTest.CatchHashChanges. | 188 // As in PrefHashCalculatorTest.CatchHashChanges. |
191 const base::StringValue string_value( | 189 const base::StringValue string_value( |
192 "testing with special chars:\n<>{}:^^@#$\\/"); | 190 "testing with special chars:\n<>{}:^^@#$\\/"); |
193 static const char kExpectedValue[] = | 191 static const char kExpectedValue[] = |
194 "05ACCBD3B05C45C36CD06190F63EC577112311929D8380E26E5F13182EB68318"; | 192 "05ACCBD3B05C45C36CD06190F63EC577112311929D8380E26E5F13182EB68318"; |
195 | 193 |
196 EXPECT_EQ(PrefHashCalculator::VALID_SECURE_LEGACY, | 194 EXPECT_EQ(PrefHashCalculator::VALID_SECURE_LEGACY, |
197 PrefHashCalculator(kSeed, kNewDeviceId, kLegacyDeviceId) | 195 PrefHashCalculator(kSeed, kNewDeviceId, kLegacyDeviceId) |
198 .Validate("pref.path", &string_value, kExpectedValue)); | 196 .Validate("pref.path", &string_value, kExpectedValue)); |
199 } | 197 } |
OLD | NEW |