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/chromeos/login/signed_settings_temp_storage.h" | 5 #include "chrome/browser/chromeos/login/signed_settings_temp_storage.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <iterator> | 8 #include <iterator> |
9 #include <map> | 9 #include <map> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "base/file_util.h" | 12 #include "base/file_util.h" |
13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
14 #include "base/scoped_temp_dir.h" | 14 #include "base/scoped_temp_dir.h" |
15 #include "chrome/browser/prefs/pref_service.h" | 15 #include "chrome/browser/prefs/pref_service.h" |
16 #include "chrome/common/logging_chrome.h" | 16 #include "chrome/common/logging_chrome.h" |
17 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
18 | 18 |
19 namespace chromeos { | 19 namespace chromeos { |
20 | 20 |
21 class SignedSettingsTempStorageTest : public testing::Test { | 21 class SignedSettingsTempStorageTest : public testing::Test { |
22 protected: | 22 protected: |
23 virtual void SetUp() { | 23 virtual void SetUp() { |
24 ref_map_["some_stuff"] = "a=35;code=64"; | 24 ref_map_.Set("some_stuff", new base::StringValue("a=35;code=64")); |
Mattias Nissler (ping if slow)
2011/10/07 11:02:57
You should rather use Value::CreateStringValue() (
pastarmovj
2011/10/13 11:25:06
Done.
| |
25 ref_map_["another_stuff"] = ""; | 25 ref_map_.Set("another_stuff", new base::FundamentalValue(false)); |
26 ref_map_["name"] = "value"; | 26 ref_map_.Set("name", new base::StringValue("value")); |
27 ref_map_["2bc6aa16-e0ea-11df-b13d-18a90520e2e5"] = "512"; | 27 ref_map_.Set("2bc6aa16-e0ea-11df-b13d-18a90520e2e5", |
28 new base::FundamentalValue("512")); | |
28 | 29 |
29 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 30 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
30 FilePath temp_file; | 31 FilePath temp_file; |
31 ASSERT_TRUE( | 32 ASSERT_TRUE( |
32 file_util::CreateTemporaryFileInDir(temp_dir_.path(), &temp_file)); | 33 file_util::CreateTemporaryFileInDir(temp_dir_.path(), &temp_file)); |
33 local_state_.reset( | 34 local_state_.reset( |
34 PrefService::CreatePrefService(temp_file, NULL, false)); | 35 PrefService::CreatePrefService(temp_file, NULL, false)); |
35 ASSERT_TRUE(NULL != local_state_.get()); | 36 ASSERT_TRUE(NULL != local_state_.get()); |
36 SignedSettingsTempStorage::RegisterPrefs(local_state_.get()); | 37 SignedSettingsTempStorage::RegisterPrefs(local_state_.get()); |
37 } | 38 } |
38 | 39 |
39 std::map<std::string, std::string> ref_map_; | 40 base::DictionaryValue ref_map_; |
41 //std::map<std::string, std::string> ref_map_; | |
Mattias Nissler (ping if slow)
2011/10/07 11:02:57
remove.
pastarmovj
2011/10/13 11:25:06
Done.
P.S This file will be changed heavily when
| |
40 ScopedTempDir temp_dir_; | 42 ScopedTempDir temp_dir_; |
41 scoped_ptr<PrefService> local_state_; | 43 scoped_ptr<PrefService> local_state_; |
42 }; | 44 }; |
43 | 45 |
44 TEST_F(SignedSettingsTempStorageTest, Basic) { | 46 TEST_F(SignedSettingsTempStorageTest, Basic) { |
45 EXPECT_GT(ref_map_.size(), 3u); // Number above 3 is many. | 47 EXPECT_GT(ref_map_.size(), 3u); // Number above 3 is many. |
46 typedef std::map<std::string, std::string>::iterator It; | 48 typedef base::DictionaryValue::key_iterator It; |
47 std::vector<It> a_list; | 49 std::vector<It> a_list; |
48 for (It it = ref_map_.begin(); it != ref_map_.end(); ++it) { | 50 base::Value* value; |
51 for (It it = ref_map_.begin_keys(); it != ref_map_.end_keys(); ++it) { | |
49 a_list.push_back(it); | 52 a_list.push_back(it); |
50 } | 53 } |
51 std::random_shuffle(a_list.begin(), a_list.end()); | 54 std::random_shuffle(a_list.begin(), a_list.end()); |
52 std::vector<It> b_list(a_list); | 55 std::vector<It> b_list(a_list); |
53 std::copy(b_list.begin(), | 56 std::copy(b_list.begin(), |
54 b_list.begin() + b_list.size() / 2, | 57 b_list.begin() + b_list.size() / 2, |
55 std::back_inserter(a_list)); | 58 std::back_inserter(a_list)); |
56 std::random_shuffle(a_list.begin(), a_list.end()); | 59 std::random_shuffle(a_list.begin(), a_list.end()); |
57 for (size_t i = 0; i < a_list.size(); ++i) { | 60 for (size_t i = 0; i < a_list.size(); ++i) { |
58 EXPECT_TRUE(SignedSettingsTempStorage::Store(a_list[i]->first, | 61 ref_map_.Get(*a_list[i], &value); |
59 a_list[i]->second, | 62 EXPECT_TRUE(SignedSettingsTempStorage::Store(*a_list[i], |
63 *value, | |
60 local_state_.get())); | 64 local_state_.get())); |
61 } | 65 } |
62 for (int i = 0; i < 3; ++i) { | 66 for (int i = 0; i < 3; ++i) { |
63 std::copy(a_list.begin(), a_list.end(), std::back_inserter(b_list)); | 67 std::copy(a_list.begin(), a_list.end(), std::back_inserter(b_list)); |
64 } | 68 } |
65 std::random_shuffle(b_list.begin(), b_list.end()); | 69 std::random_shuffle(b_list.begin(), b_list.end()); |
66 std::string value; | |
67 for (size_t i = 0; i < b_list.size(); ++i) { | 70 for (size_t i = 0; i < b_list.size(); ++i) { |
68 EXPECT_TRUE(SignedSettingsTempStorage::Retrieve(b_list[i]->first, &value, | 71 EXPECT_TRUE(SignedSettingsTempStorage::Retrieve(*b_list[i], &value, |
69 local_state_.get())); | 72 local_state_.get())); |
70 EXPECT_EQ(b_list[i]->second, value); | 73 base::Value* orignal_value; |
74 ref_map_.Get(*b_list[i], &orignal_value); | |
75 EXPECT_TRUE(orignal_value->Equals(value)); | |
71 EXPECT_FALSE(SignedSettingsTempStorage::Retrieve("non-existent tv-series", | 76 EXPECT_FALSE(SignedSettingsTempStorage::Retrieve("non-existent tv-series", |
72 &value, | 77 &value, |
73 local_state_.get())); | 78 local_state_.get())); |
74 } | 79 } |
75 } | 80 } |
76 | 81 |
77 } // namespace chromeos | 82 } // namespace chromeos |
OLD | NEW |