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 "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
6 #include "base/run_loop.h" | 6 #include "base/run_loop.h" |
7 #include "base/version.h" | 7 #include "base/version.h" |
8 #include "chrome/browser/component_updater/component_updater_ping_manager.h" | 8 #include "chrome/browser/component_updater/component_updater_ping_manager.h" |
9 #include "chrome/browser/component_updater/crx_update_item.h" | 9 #include "chrome/browser/component_updater/crx_update_item.h" |
10 #include "chrome/browser/component_updater/test/component_updater_service_unitte
st.h" | 10 #include "chrome/browser/component_updater/test/component_updater_service_unitte
st.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 } | 61 } |
62 | 62 |
63 // Test is flaky: http://crbug.com/349547 | 63 // Test is flaky: http://crbug.com/349547 |
64 TEST_F(ComponentUpdaterPingManagerTest, DISABLED_PingManagerTest) { | 64 TEST_F(ComponentUpdaterPingManagerTest, DISABLED_PingManagerTest) { |
65 scoped_ptr<InterceptorFactory> interceptor_factory(new InterceptorFactory); | 65 scoped_ptr<InterceptorFactory> interceptor_factory(new InterceptorFactory); |
66 URLRequestPostInterceptor* interceptor = | 66 URLRequestPostInterceptor* interceptor = |
67 interceptor_factory->CreateInterceptor(); | 67 interceptor_factory->CreateInterceptor(); |
68 EXPECT_TRUE(interceptor); | 68 EXPECT_TRUE(interceptor); |
69 | 69 |
70 // Test eventresult="1" is sent for successful updates. | 70 // Test eventresult="1" is sent for successful updates. |
71 CrxUpdateItem item; | 71 scoped_ptr<CrxUpdateItem> item(new CrxUpdateItem()); |
72 item.id = "abc"; | 72 item->id = "abc"; |
73 item.status = CrxUpdateItem::kUpdated; | 73 item->status = CrxUpdateItem::kUpdated; |
74 item.previous_version = base::Version("1.0"); | 74 item->previous_version = base::Version("1.0"); |
75 item.next_version = base::Version("2.0"); | 75 item->next_version = base::Version("2.0"); |
76 | 76 |
77 ping_manager_->OnUpdateComplete(&item); | 77 ping_manager_->OnUpdateComplete(item.get()); |
78 base::RunLoop().RunUntilIdle(); | 78 base::RunLoop().RunUntilIdle(); |
79 | 79 |
80 EXPECT_EQ(1, interceptor->GetCount()) << interceptor->GetRequestsAsString(); | 80 EXPECT_EQ(1, interceptor->GetCount()) << interceptor->GetRequestsAsString(); |
81 EXPECT_NE(string::npos, | 81 EXPECT_NE(string::npos, |
82 interceptor->GetRequests()[0].find( | 82 interceptor->GetRequests()[0].find( |
83 "<app appid=\"abc\" version=\"1.0\" nextversion=\"2.0\">" | 83 "<app appid=\"abc\" version=\"1.0\" nextversion=\"2.0\">" |
84 "<event eventtype=\"3\" eventresult=\"1\"/></app>")) | 84 "<event eventtype=\"3\" eventresult=\"1\"/></app>")) |
85 << interceptor->GetRequestsAsString(); | 85 << interceptor->GetRequestsAsString(); |
86 interceptor->Reset(); | 86 interceptor->Reset(); |
87 | 87 |
88 // Test eventresult="0" is sent for failed updates. | 88 // Test eventresult="0" is sent for failed updates. |
89 item = CrxUpdateItem(); | 89 item.reset(new CrxUpdateItem()); |
90 item.id = "abc"; | 90 item->id = "abc"; |
91 item.status = CrxUpdateItem::kNoUpdate; | 91 item->status = CrxUpdateItem::kNoUpdate; |
92 item.previous_version = base::Version("1.0"); | 92 item->previous_version = base::Version("1.0"); |
93 item.next_version = base::Version("2.0"); | 93 item->next_version = base::Version("2.0"); |
94 | 94 |
95 ping_manager_->OnUpdateComplete(&item); | 95 ping_manager_->OnUpdateComplete(item.get()); |
96 base::RunLoop().RunUntilIdle(); | 96 base::RunLoop().RunUntilIdle(); |
97 | 97 |
98 EXPECT_EQ(1, interceptor->GetCount()) << interceptor->GetRequestsAsString(); | 98 EXPECT_EQ(1, interceptor->GetCount()) << interceptor->GetRequestsAsString(); |
99 EXPECT_NE(string::npos, | 99 EXPECT_NE(string::npos, |
100 interceptor->GetRequests()[0].find( | 100 interceptor->GetRequests()[0].find( |
101 "<app appid=\"abc\" version=\"1.0\" nextversion=\"2.0\">" | 101 "<app appid=\"abc\" version=\"1.0\" nextversion=\"2.0\">" |
102 "<event eventtype=\"3\" eventresult=\"0\"/></app>")) | 102 "<event eventtype=\"3\" eventresult=\"0\"/></app>")) |
103 << interceptor->GetRequestsAsString(); | 103 << interceptor->GetRequestsAsString(); |
104 interceptor->Reset(); | 104 interceptor->Reset(); |
105 | 105 |
106 // Test the error values and the fingerprints. | 106 // Test the error values and the fingerprints. |
107 item = CrxUpdateItem(); | 107 item.reset(new CrxUpdateItem()); |
108 item.id = "abc"; | 108 item->id = "abc"; |
109 item.status = CrxUpdateItem::kNoUpdate; | 109 item->status = CrxUpdateItem::kNoUpdate; |
110 item.previous_version = base::Version("1.0"); | 110 item->previous_version = base::Version("1.0"); |
111 item.next_version = base::Version("2.0"); | 111 item->next_version = base::Version("2.0"); |
112 item.previous_fp = "prev fp"; | 112 item->previous_fp = "prev fp"; |
113 item.next_fp = "next fp"; | 113 item->next_fp = "next fp"; |
114 item.error_category = 1; | 114 item->error_category = 1; |
115 item.error_code = 2; | 115 item->error_code = 2; |
116 item.extra_code1 = -1; | 116 item->extra_code1 = -1; |
117 item.diff_error_category = 10; | 117 item->diff_error_category = 10; |
118 item.diff_error_code = 20; | 118 item->diff_error_code = 20; |
119 item.diff_extra_code1 = -10; | 119 item->diff_extra_code1 = -10; |
120 item.diff_update_failed = true; | 120 item->diff_update_failed = true; |
121 item.crx_diffurls.push_back(GURL("http://host/path")); | 121 item->crx_diffurls.push_back(GURL("http://host/path")); |
122 | 122 |
123 ping_manager_->OnUpdateComplete(&item); | 123 ping_manager_->OnUpdateComplete(item.get()); |
124 base::RunLoop().RunUntilIdle(); | 124 base::RunLoop().RunUntilIdle(); |
125 | 125 |
126 EXPECT_EQ(1, interceptor->GetCount()) << interceptor->GetRequestsAsString(); | 126 EXPECT_EQ(1, interceptor->GetCount()) << interceptor->GetRequestsAsString(); |
127 EXPECT_NE(string::npos, | 127 EXPECT_NE(string::npos, |
128 interceptor->GetRequests()[0].find( | 128 interceptor->GetRequests()[0].find( |
129 "<app appid=\"abc\" version=\"1.0\" nextversion=\"2.0\">" | 129 "<app appid=\"abc\" version=\"1.0\" nextversion=\"2.0\">" |
130 "<event eventtype=\"3\" eventresult=\"0\" errorcat=\"1\" " | 130 "<event eventtype=\"3\" eventresult=\"0\" errorcat=\"1\" " |
131 "errorcode=\"2\" extracode1=\"-1\" diffresult=\"0\" " | 131 "errorcode=\"2\" extracode1=\"-1\" diffresult=\"0\" " |
132 "differrorcat=\"10\" " | 132 "differrorcat=\"10\" " |
133 "differrorcode=\"20\" diffextracode1=\"-10\" " | 133 "differrorcode=\"20\" diffextracode1=\"-10\" " |
134 "previousfp=\"prev fp\" nextfp=\"next fp\"/></app>")) | 134 "previousfp=\"prev fp\" nextfp=\"next fp\"/></app>")) |
135 << interceptor->GetRequestsAsString(); | 135 << interceptor->GetRequestsAsString(); |
136 interceptor->Reset(); | 136 interceptor->Reset(); |
137 | 137 |
138 // Test the download metrics. | 138 // Test the download metrics. |
139 item = CrxUpdateItem(); | 139 item.reset(new CrxUpdateItem()); |
140 item.id = "abc"; | 140 item->id = "abc"; |
141 item.status = CrxUpdateItem::kUpdated; | 141 item->status = CrxUpdateItem::kUpdated; |
142 item.previous_version = base::Version("1.0"); | 142 item->previous_version = base::Version("1.0"); |
143 item.next_version = base::Version("2.0"); | 143 item->next_version = base::Version("2.0"); |
144 | 144 |
145 CrxDownloader::DownloadMetrics download_metrics; | 145 CrxDownloader::DownloadMetrics download_metrics; |
146 download_metrics.url = GURL("http://host1/path1"); | 146 download_metrics.url = GURL("http://host1/path1"); |
147 download_metrics.downloader = CrxDownloader::DownloadMetrics::kUrlFetcher; | 147 download_metrics.downloader = CrxDownloader::DownloadMetrics::kUrlFetcher; |
148 download_metrics.error = -1; | 148 download_metrics.error = -1; |
149 download_metrics.downloaded_bytes = 123; | 149 download_metrics.downloaded_bytes = 123; |
150 download_metrics.total_bytes = 456; | 150 download_metrics.total_bytes = 456; |
151 download_metrics.download_time_ms = 987; | 151 download_metrics.download_time_ms = 987; |
152 item.download_metrics.push_back(download_metrics); | 152 item->download_metrics.push_back(download_metrics); |
153 | 153 |
154 download_metrics = CrxDownloader::DownloadMetrics(); | 154 download_metrics = CrxDownloader::DownloadMetrics(); |
155 download_metrics.url = GURL("http://host2/path2"); | 155 download_metrics.url = GURL("http://host2/path2"); |
156 download_metrics.downloader = CrxDownloader::DownloadMetrics::kBits; | 156 download_metrics.downloader = CrxDownloader::DownloadMetrics::kBits; |
157 download_metrics.error = 0; | 157 download_metrics.error = 0; |
158 download_metrics.downloaded_bytes = 1230; | 158 download_metrics.downloaded_bytes = 1230; |
159 download_metrics.total_bytes = 4560; | 159 download_metrics.total_bytes = 4560; |
160 download_metrics.download_time_ms = 9870; | 160 download_metrics.download_time_ms = 9870; |
161 item.download_metrics.push_back(download_metrics); | 161 item->download_metrics.push_back(download_metrics); |
162 | 162 |
163 ping_manager_->OnUpdateComplete(&item); | 163 ping_manager_->OnUpdateComplete(item.get()); |
164 base::RunLoop().RunUntilIdle(); | 164 base::RunLoop().RunUntilIdle(); |
165 | 165 |
166 EXPECT_EQ(1, interceptor->GetCount()) << interceptor->GetRequestsAsString(); | 166 EXPECT_EQ(1, interceptor->GetCount()) << interceptor->GetRequestsAsString(); |
167 EXPECT_NE( | 167 EXPECT_NE( |
168 string::npos, | 168 string::npos, |
169 interceptor->GetRequests()[0].find( | 169 interceptor->GetRequests()[0].find( |
170 "<app appid=\"abc\" version=\"1.0\" nextversion=\"2.0\">" | 170 "<app appid=\"abc\" version=\"1.0\" nextversion=\"2.0\">" |
171 "<event eventtype=\"3\" eventresult=\"1\"/>" | 171 "<event eventtype=\"3\" eventresult=\"1\"/>" |
172 "<event eventtype=\"14\" eventresult=\"0\" downloader=\"direct\" " | 172 "<event eventtype=\"14\" eventresult=\"0\" downloader=\"direct\" " |
173 "errorcode=\"-1\" url=\"http://host1/path1\" downloaded=\"123\" " | 173 "errorcode=\"-1\" url=\"http://host1/path1\" downloaded=\"123\" " |
174 "total=\"456\" download_time_ms=\"987\"/>" | 174 "total=\"456\" download_time_ms=\"987\"/>" |
175 "<event eventtype=\"14\" eventresult=\"1\" downloader=\"bits\" " | 175 "<event eventtype=\"14\" eventresult=\"1\" downloader=\"bits\" " |
176 "url=\"http://host2/path2\" downloaded=\"1230\" total=\"4560\" " | 176 "url=\"http://host2/path2\" downloaded=\"1230\" total=\"4560\" " |
177 "download_time_ms=\"9870\"/></app>")) | 177 "download_time_ms=\"9870\"/></app>")) |
178 << interceptor->GetRequestsAsString(); | 178 << interceptor->GetRequestsAsString(); |
179 interceptor->Reset(); | 179 interceptor->Reset(); |
180 } | 180 } |
181 | 181 |
182 } // namespace component_updater | 182 } // namespace component_updater |
OLD | NEW |