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

Side by Side Diff: chromecast/crash/cast_crashdump_uploader_unittest.cc

Issue 1484713003: [Chromecast] Use ScopedTemp[File|Dir] in tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Style 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 <string> 5 #include <string>
6 6
7 #include "base/files/file_util.h" 7 #include "base/files/file_util.h"
8 #include "breakpad/src/common/linux/libcurl_wrapper.h" 8 #include "breakpad/src/common/linux/libcurl_wrapper.h"
9 #include "chromecast/base/scoped_temp_file.h"
9 #include "chromecast/crash/cast_crashdump_uploader.h" 10 #include "chromecast/crash/cast_crashdump_uploader.h"
10 #include "testing/gmock/include/gmock/gmock.h" 11 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
12 13
13 namespace chromecast { 14 namespace chromecast {
14 15
15 class MockLibcurlWrapper : public google_breakpad::LibcurlWrapper { 16 class MockLibcurlWrapper : public google_breakpad::LibcurlWrapper {
16 public: 17 public:
17 MOCK_METHOD0(Init, bool()); 18 MOCK_METHOD0(Init, bool());
18 MOCK_METHOD2(SetProxy, 19 MOCK_METHOD2(SetProxy,
(...skipping 28 matching lines...) Expand all
47 data.crash_server = "http://foo.com"; 48 data.crash_server = "http://foo.com";
48 CastCrashdumpUploader uploader(data, &m); 49 CastCrashdumpUploader uploader(data, &m);
49 50
50 ASSERT_FALSE(uploader.Upload(nullptr)); 51 ASSERT_FALSE(uploader.Upload(nullptr));
51 } 52 }
52 53
53 TEST(CastCrashdumpUploaderTest, UploadSucceedsWithValidParameters) { 54 TEST(CastCrashdumpUploaderTest, UploadSucceedsWithValidParameters) {
54 testing::StrictMock<MockLibcurlWrapper> m; 55 testing::StrictMock<MockLibcurlWrapper> m;
55 56
56 // Create a temporary file. 57 // Create a temporary file.
57 base::FilePath temp; 58 ScopedTempFile minidump;
58 ASSERT_TRUE(base::CreateTemporaryFile(&temp));
59 59
60 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true)); 60 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true));
61 EXPECT_CALL(m, AddFile(temp.value(), _)).WillOnce(Return(true)); 61 EXPECT_CALL(m, AddFile(minidump.path().value(), _)).WillOnce(Return(true));
62 EXPECT_CALL(m, SendRequest("http://foo.com", _, _, _, _)).Times(1).WillOnce( 62 EXPECT_CALL(m, SendRequest("http://foo.com", _, _, _, _)).Times(1).WillOnce(
63 Return(true)); 63 Return(true));
64 64
65 CastCrashdumpData data; 65 CastCrashdumpData data;
66 data.product = "foobar"; 66 data.product = "foobar";
67 data.version = "1.0"; 67 data.version = "1.0";
68 data.guid = "AAA-BBB"; 68 data.guid = "AAA-BBB";
69 data.email = "test@test.com"; 69 data.email = "test@test.com";
70 data.comments = "none"; 70 data.comments = "none";
71 data.minidump_pathname = temp.value(); 71 data.minidump_pathname = minidump.path().value();
72 data.crash_server = "http://foo.com"; 72 data.crash_server = "http://foo.com";
73 CastCrashdumpUploader uploader(data, &m); 73 CastCrashdumpUploader uploader(data, &m);
74 74
75 ASSERT_TRUE(uploader.Upload(nullptr)); 75 ASSERT_TRUE(uploader.Upload(nullptr));
76 } 76 }
77 77
78 TEST(CastCrashdumpUploaderTest, UploadFailsWithInvalidPathname) { 78 TEST(CastCrashdumpUploaderTest, UploadFailsWithInvalidPathname) {
79 testing::StrictMock<MockLibcurlWrapper> m; 79 testing::StrictMock<MockLibcurlWrapper> m;
80 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true)); 80 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true));
81 EXPECT_CALL(m, SendRequest(_, _, _, _, _)).Times(0); 81 EXPECT_CALL(m, SendRequest(_, _, _, _, _)).Times(0);
82 82
83 CastCrashdumpData data; 83 CastCrashdumpData data;
84 data.product = "foobar"; 84 data.product = "foobar";
85 data.version = "1.0"; 85 data.version = "1.0";
86 data.guid = "AAA-BBB"; 86 data.guid = "AAA-BBB";
87 data.email = "test@test.com"; 87 data.email = "test@test.com";
88 data.comments = "none"; 88 data.comments = "none";
89 data.minidump_pathname = "/invalid/file/path"; 89 data.minidump_pathname = "/invalid/file/path";
90 data.crash_server = "http://foo.com"; 90 data.crash_server = "http://foo.com";
91 CastCrashdumpUploader uploader(data, &m); 91 CastCrashdumpUploader uploader(data, &m);
92 92
93 ASSERT_FALSE(uploader.Upload(nullptr)); 93 ASSERT_FALSE(uploader.Upload(nullptr));
94 } 94 }
95 95
96 TEST(CastCrashdumpUploaderTest, UploadFailsWithoutAllRequiredParameters) { 96 TEST(CastCrashdumpUploaderTest, UploadFailsWithoutAllRequiredParameters) {
97 testing::StrictMock<MockLibcurlWrapper> m; 97 testing::StrictMock<MockLibcurlWrapper> m;
98 98
99 // Create a temporary file. 99 // Create a temporary file.
100 base::FilePath temp; 100 ScopedTempFile minidump;
101 ASSERT_TRUE(base::CreateTemporaryFile(&temp));
102 101
103 // Has all the require fields for a crashdump. 102 // Has all the require fields for a crashdump.
104 CastCrashdumpData data; 103 CastCrashdumpData data;
105 data.product = "foobar"; 104 data.product = "foobar";
106 data.version = "1.0"; 105 data.version = "1.0";
107 data.guid = "AAA-BBB"; 106 data.guid = "AAA-BBB";
108 data.email = "test@test.com"; 107 data.email = "test@test.com";
109 data.comments = "none"; 108 data.comments = "none";
110 data.minidump_pathname = temp.value(); 109 data.minidump_pathname = minidump.path().value();
111 data.crash_server = "http://foo.com"; 110 data.crash_server = "http://foo.com";
112 111
113 // Test with empty product name. 112 // Test with empty product name.
114 data.product = ""; 113 data.product = "";
115 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true)); 114 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true));
116 CastCrashdumpUploader uploader_no_product(data, &m); 115 CastCrashdumpUploader uploader_no_product(data, &m);
117 ASSERT_FALSE(uploader_no_product.Upload(nullptr)); 116 ASSERT_FALSE(uploader_no_product.Upload(nullptr));
118 data.product = "foobar"; 117 data.product = "foobar";
119 118
120 // Test with empty product version. 119 // Test with empty product version.
121 data.version = ""; 120 data.version = "";
122 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true)); 121 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true));
123 CastCrashdumpUploader uploader_no_version(data, &m); 122 CastCrashdumpUploader uploader_no_version(data, &m);
124 ASSERT_FALSE(uploader_no_version.Upload(nullptr)); 123 ASSERT_FALSE(uploader_no_version.Upload(nullptr));
125 data.version = "1.0"; 124 data.version = "1.0";
126 125
127 // Test with empty client GUID. 126 // Test with empty client GUID.
128 data.guid = ""; 127 data.guid = "";
129 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true)); 128 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true));
130 CastCrashdumpUploader uploader_no_guid(data, &m); 129 CastCrashdumpUploader uploader_no_guid(data, &m);
131 ASSERT_FALSE(uploader_no_guid.Upload(nullptr)); 130 ASSERT_FALSE(uploader_no_guid.Upload(nullptr));
132 } 131 }
133 132
134 TEST(CastCrashdumpUploaderTest, UploadFailsWithInvalidAttachment) { 133 TEST(CastCrashdumpUploaderTest, UploadFailsWithInvalidAttachment) {
135 testing::StrictMock<MockLibcurlWrapper> m; 134 testing::StrictMock<MockLibcurlWrapper> m;
136 135
137 // Create a temporary file. 136 // Create a temporary file.
138 base::FilePath minidump; 137 ScopedTempFile minidump;
139 ASSERT_TRUE(base::CreateTemporaryFile(&minidump));
140 138
141 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true)); 139 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true));
142 EXPECT_CALL(m, AddFile(minidump.value(), _)).WillOnce(Return(true)); 140 EXPECT_CALL(m, AddFile(minidump.path().value(), _)).WillOnce(Return(true));
143 141
144 CastCrashdumpData data; 142 CastCrashdumpData data;
145 data.product = "foobar"; 143 data.product = "foobar";
146 data.version = "1.0"; 144 data.version = "1.0";
147 data.guid = "AAA-BBB"; 145 data.guid = "AAA-BBB";
148 data.email = "test@test.com"; 146 data.email = "test@test.com";
149 data.comments = "none"; 147 data.comments = "none";
150 data.minidump_pathname = minidump.value(); 148 data.minidump_pathname = minidump.path().value();
151 data.crash_server = "http://foo.com"; 149 data.crash_server = "http://foo.com";
152 CastCrashdumpUploader uploader(data, &m); 150 CastCrashdumpUploader uploader(data, &m);
153 151
154 // Add a file that does not exist as an attachment. 152 // Add a file that does not exist as an attachment.
155 uploader.AddAttachment("label", "/path/does/not/exist"); 153 uploader.AddAttachment("label", "/path/does/not/exist");
156 ASSERT_FALSE(uploader.Upload(nullptr)); 154 ASSERT_FALSE(uploader.Upload(nullptr));
157 } 155 }
158 156
159 TEST(CastCrashdumpUploaderTest, UploadSucceedsWithValidAttachment) { 157 TEST(CastCrashdumpUploaderTest, UploadSucceedsWithValidAttachment) {
160 testing::StrictMock<MockLibcurlWrapper> m; 158 testing::StrictMock<MockLibcurlWrapper> m;
161 159
162 // Create a temporary file. 160 // Create a temporary file.
163 base::FilePath minidump; 161 ScopedTempFile minidump;
164 ASSERT_TRUE(base::CreateTemporaryFile(&minidump));
165 162
166 // Create a valid attachment. 163 // Create a valid attachment.
167 base::FilePath attachment; 164 ScopedTempFile attachment;
168 ASSERT_TRUE(base::CreateTemporaryFile(&attachment));
169 165
170 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true)); 166 EXPECT_CALL(m, Init()).Times(1).WillOnce(Return(true));
171 EXPECT_CALL(m, AddFile(minidump.value(), _)).WillOnce(Return(true)); 167 EXPECT_CALL(m, AddFile(minidump.path().value(), _)).WillOnce(Return(true));
172 EXPECT_CALL(m, AddFile(attachment.value(), _)).WillOnce(Return(true)); 168 EXPECT_CALL(m, AddFile(attachment.path().value(), _)).WillOnce(Return(true));
173 EXPECT_CALL(m, SendRequest(_, _, _, _, _)).Times(1).WillOnce(Return(true)); 169 EXPECT_CALL(m, SendRequest(_, _, _, _, _)).Times(1).WillOnce(Return(true));
174 170
175 CastCrashdumpData data; 171 CastCrashdumpData data;
176 data.product = "foobar"; 172 data.product = "foobar";
177 data.version = "1.0"; 173 data.version = "1.0";
178 data.guid = "AAA-BBB"; 174 data.guid = "AAA-BBB";
179 data.email = "test@test.com"; 175 data.email = "test@test.com";
180 data.comments = "none"; 176 data.comments = "none";
181 data.minidump_pathname = minidump.value(); 177 data.minidump_pathname = minidump.path().value();
182 data.crash_server = "http://foo.com"; 178 data.crash_server = "http://foo.com";
183 CastCrashdumpUploader uploader(data, &m); 179 CastCrashdumpUploader uploader(data, &m);
184 180
185 // Add a file that does not exist as an attachment. 181 // Add a valid file as an attachment.
186 uploader.AddAttachment("label", attachment.value()); 182 uploader.AddAttachment("label", attachment.path().value());
187 ASSERT_TRUE(uploader.Upload(nullptr)); 183 ASSERT_TRUE(uploader.Upload(nullptr));
188 } 184 }
189 185
190 } // namespace chromeceast 186 } // namespace chromeceast
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698