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

Side by Side Diff: chromecast/base/serializers_unittest.cc

Issue 1484713003: [Chromecast] Use ScopedTemp[File|Dir] in tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Fix bug in test fixture, add CHECK to ScopedTempFile::Read Created 5 years 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "base/files/file_util.h" 5 #include "base/files/file_util.h"
6 #include "base/values.h" 6 #include "base/values.h"
7 #include "chromecast/base/scoped_temp_file.h"
7 #include "chromecast/base/serializers.h" 8 #include "chromecast/base/serializers.h"
8 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
9 10
10 namespace chromecast { 11 namespace chromecast {
11 namespace { 12 namespace {
12 const char kEmptyJsonString[] = "{}"; 13 const char kEmptyJsonString[] = "{}";
13 const char kEmptyJsonFileString[] = "{\n\n}\n"; 14 const char kEmptyJsonFileString[] = "{\n\n}\n";
14 const char kProperJsonString[] = 15 const char kProperJsonString[] =
15 "{\n" 16 "{\n"
16 " \"compound\": {\n" 17 " \"compound\": {\n"
17 " \"a\": 1,\n" 18 " \"a\": 1,\n"
18 " \"b\": 2\n" 19 " \"b\": 2\n"
19 " },\n" 20 " },\n"
20 " \"some_String\": \"1337\",\n" 21 " \"some_String\": \"1337\",\n"
21 " \"some_int\": 42,\n" 22 " \"some_int\": 42,\n"
22 " \"the_list\": [ \"val1\", \"val2\" ]\n" 23 " \"the_list\": [ \"val1\", \"val2\" ]\n"
23 "}\n"; 24 "}\n";
24 const char kPoorlyFormedJsonString[] = "{\"key\":"; 25 const char kPoorlyFormedJsonString[] = "{\"key\":";
25 const char kTestKey[] = "test_key"; 26 const char kTestKey[] = "test_key";
26 const char kTestValue[] = "test_value"; 27 const char kTestValue[] = "test_value";
27 const char kTempfileName[] = "temp";
28 28
29 } // namespace 29 } // namespace
30 30
31 TEST(DeserializeFromJson, EmptyString) { 31 TEST(DeserializeFromJson, EmptyString) {
32 std::string str; 32 std::string str;
33 scoped_ptr<base::Value> value = DeserializeFromJson(str); 33 scoped_ptr<base::Value> value = DeserializeFromJson(str);
34 EXPECT_EQ(nullptr, value.get()); 34 EXPECT_EQ(nullptr, value.get());
35 } 35 }
36 36
37 TEST(DeserializeFromJson, EmptyJsonObject) { 37 TEST(DeserializeFromJson, EmptyJsonObject) {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 base::DictionaryValue orig_value; 69 base::DictionaryValue orig_value;
70 orig_value.SetString(kTestKey, kTestValue); 70 orig_value.SetString(kTestKey, kTestValue);
71 scoped_ptr<std::string> str = SerializeToJson(orig_value); 71 scoped_ptr<std::string> str = SerializeToJson(orig_value);
72 ASSERT_NE(nullptr, str.get()); 72 ASSERT_NE(nullptr, str.get());
73 73
74 scoped_ptr<base::Value> new_value = DeserializeFromJson(*str); 74 scoped_ptr<base::Value> new_value = DeserializeFromJson(*str);
75 ASSERT_NE(nullptr, new_value.get()); 75 ASSERT_NE(nullptr, new_value.get());
76 EXPECT_TRUE(new_value->Equals(&orig_value)); 76 EXPECT_TRUE(new_value->Equals(&orig_value));
77 } 77 }
78 78
79 class ScopedTempFile {
80 public:
81 ScopedTempFile() {
82 // Create a temporary file
83 base::CreateNewTempDirectory("", &dir_);
84 file_ = dir_.Append(kTempfileName);
85 }
86
87 ~ScopedTempFile() {
88 // Remove the temp directory.
89 base::DeleteFile(dir_, true);
90 }
91
92 const base::FilePath& file() const { return file_; }
93 const base::FilePath& dir() const { return dir_; }
94
95 std::size_t Write(const char* str) {
96 return static_cast<std::size_t>(base::WriteFile(file_, str, strlen(str)));
97 }
98
99 std::string Read() {
100 std::string result;
101 ReadFileToString(file_, &result);
102 return result;
103 }
104
105 private:
106 base::FilePath file_;
107 base::FilePath dir_;
108
109 DISALLOW_COPY_AND_ASSIGN(ScopedTempFile);
110 };
111
112 TEST(DeserializeJsonFromFile, NoFile) { 79 TEST(DeserializeJsonFromFile, NoFile) {
113 ScopedTempFile temp; 80 scoped_ptr<base::Value> value =
114 81 DeserializeJsonFromFile(base::FilePath("/file/does/not/exist.json"));
115 ASSERT_TRUE(base::IsDirectoryEmpty(temp.dir()));
116 scoped_ptr<base::Value> value = DeserializeJsonFromFile(temp.file());
117 EXPECT_EQ(nullptr, value.get()); 82 EXPECT_EQ(nullptr, value.get());
118 } 83 }
119 84
120 TEST(DeserializeJsonFromFile, EmptyString) { 85 TEST(DeserializeJsonFromFile, EmptyString) {
121 ScopedTempFile temp; 86 ScopedTempFile temp;
122 EXPECT_EQ(strlen(""), temp.Write("")); 87 EXPECT_EQ(static_cast<int>(strlen("")), temp.Write(""));
123 scoped_ptr<base::Value> value = DeserializeJsonFromFile(temp.file()); 88 scoped_ptr<base::Value> value = DeserializeJsonFromFile(temp.path());
124 EXPECT_EQ(nullptr, value.get()); 89 EXPECT_EQ(nullptr, value.get());
125 } 90 }
126 91
127 TEST(DeserializeJsonFromFile, EmptyJsonObject) { 92 TEST(DeserializeJsonFromFile, EmptyJsonObject) {
128 ScopedTempFile temp; 93 ScopedTempFile temp;
129 EXPECT_EQ(strlen(kEmptyJsonString), temp.Write(kEmptyJsonString)); 94 EXPECT_EQ(static_cast<int>(strlen(kEmptyJsonString)),
130 scoped_ptr<base::Value> value = DeserializeJsonFromFile(temp.file()); 95 temp.Write(kEmptyJsonString));
96 scoped_ptr<base::Value> value = DeserializeJsonFromFile(temp.path());
131 EXPECT_NE(nullptr, value.get()); 97 EXPECT_NE(nullptr, value.get());
132 } 98 }
133 99
134 TEST(DeserializeJsonFromFile, ProperJsonObject) { 100 TEST(DeserializeJsonFromFile, ProperJsonObject) {
135 ScopedTempFile temp; 101 ScopedTempFile temp;
136 EXPECT_EQ(strlen(kProperJsonString), temp.Write(kProperJsonString)); 102 EXPECT_EQ(static_cast<int>(strlen(kProperJsonString)),
137 scoped_ptr<base::Value> value = DeserializeJsonFromFile(temp.file()); 103 temp.Write(kProperJsonString));
104 scoped_ptr<base::Value> value = DeserializeJsonFromFile(temp.path());
138 EXPECT_NE(nullptr, value.get()); 105 EXPECT_NE(nullptr, value.get());
139 } 106 }
140 107
141 TEST(DeserializeJsonFromFile, PoorlyFormedJsonObject) { 108 TEST(DeserializeJsonFromFile, PoorlyFormedJsonObject) {
142 ScopedTempFile temp; 109 ScopedTempFile temp;
143 EXPECT_EQ(strlen(kPoorlyFormedJsonString), 110 EXPECT_EQ(static_cast<int>(strlen(kPoorlyFormedJsonString)),
144 temp.Write(kPoorlyFormedJsonString)); 111 temp.Write(kPoorlyFormedJsonString));
145 scoped_ptr<base::Value> value = DeserializeJsonFromFile(temp.file()); 112 scoped_ptr<base::Value> value = DeserializeJsonFromFile(temp.path());
146 EXPECT_EQ(nullptr, value.get()); 113 EXPECT_EQ(nullptr, value.get());
147 } 114 }
148 115
149 TEST(SerializeJsonToFile, BadValue) { 116 TEST(SerializeJsonToFile, BadValue) {
150 ScopedTempFile temp; 117 ScopedTempFile temp;
151 118
152 base::BinaryValue value(scoped_ptr<char[]>(new char[12]), 12); 119 base::BinaryValue value(scoped_ptr<char[]>(new char[12]), 12);
153 ASSERT_FALSE(SerializeJsonToFile(temp.file(), value)); 120 ASSERT_FALSE(SerializeJsonToFile(temp.path(), value));
154 std::string str(temp.Read()); 121 std::string str(temp.Read());
155 EXPECT_TRUE(str.empty()); 122 EXPECT_TRUE(str.empty());
156 } 123 }
157 124
158 TEST(SerializeJsonToFile, EmptyValue) { 125 TEST(SerializeJsonToFile, EmptyValue) {
159 ScopedTempFile temp; 126 ScopedTempFile temp;
160 127
161 base::DictionaryValue value; 128 base::DictionaryValue value;
162 ASSERT_TRUE(SerializeJsonToFile(temp.file(), value)); 129 ASSERT_TRUE(SerializeJsonToFile(temp.path(), value));
163 std::string str(temp.Read()); 130 std::string str(temp.Read());
164 ASSERT_FALSE(str.empty()); 131 ASSERT_FALSE(str.empty());
165 EXPECT_EQ(kEmptyJsonFileString, str); 132 EXPECT_EQ(kEmptyJsonFileString, str);
166 } 133 }
167 134
168 TEST(SerializeJsonToFile, PopulatedValue) { 135 TEST(SerializeJsonToFile, PopulatedValue) {
169 ScopedTempFile temp; 136 ScopedTempFile temp;
170 137
171 base::DictionaryValue orig_value; 138 base::DictionaryValue orig_value;
172 orig_value.SetString(kTestKey, kTestValue); 139 orig_value.SetString(kTestKey, kTestValue);
173 ASSERT_TRUE(SerializeJsonToFile(temp.file(), orig_value)); 140 ASSERT_TRUE(SerializeJsonToFile(temp.path(), orig_value));
174 std::string str(temp.Read()); 141 std::string str(temp.Read());
175 ASSERT_FALSE(str.empty()); 142 ASSERT_FALSE(str.empty());
176 143
177 scoped_ptr<base::Value> new_value = DeserializeJsonFromFile(temp.file()); 144 scoped_ptr<base::Value> new_value = DeserializeJsonFromFile(temp.path());
178 ASSERT_NE(nullptr, new_value.get()); 145 ASSERT_NE(nullptr, new_value.get());
179 EXPECT_TRUE(new_value->Equals(&orig_value)); 146 EXPECT_TRUE(new_value->Equals(&orig_value));
180 } 147 }
181 148
182 } // namespace chromecast 149 } // namespace chromecast
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698