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

Side by Side Diff: chrome/browser/extensions/extension_crash_recovery_browsertest.cc

Issue 6894034: Update infobar references to balloon and delete obsoleted tests for multiple infobars. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 8 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "base/process_util.h" 5 #include "base/process_util.h"
6 #include "chrome/browser/browser_process.h" 6 #include "chrome/browser/browser_process.h"
7 #include "chrome/browser/extensions/extension_browsertest.h" 7 #include "chrome/browser/extensions/extension_browsertest.h"
8 #include "chrome/browser/extensions/extension_host.h" 8 #include "chrome/browser/extensions/extension_host.h"
9 #include "chrome/browser/extensions/extension_process_manager.h" 9 #include "chrome/browser/extensions/extension_process_manager.h"
10 #include "chrome/browser/extensions/extension_service.h" 10 #include "chrome/browser/extensions/extension_service.h"
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 ui_test_utils::NavigateToURL(browser(), 218 ui_test_utils::NavigateToURL(browser(),
219 ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory), 219 ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory),
220 FilePath(FILE_PATH_LITERAL("title1.html")))); 220 FilePath(FILE_PATH_LITERAL("title1.html"))));
221 ASSERT_EQ(1U, CountBalloons()); 221 ASSERT_EQ(1U, CountBalloons());
222 222
223 ReloadExtension(first_extension_id_); 223 ReloadExtension(first_extension_id_);
224 224
225 SCOPED_TRACE("after reloading"); 225 SCOPED_TRACE("after reloading");
226 CheckExtensionConsistency(size_before); 226 CheckExtensionConsistency(size_before);
227 227
228 // The infobar should automatically hide after the extension is successfully 228 // The balloon should automatically hide after the extension is successfully
229 // reloaded. 229 // reloaded.
230 ASSERT_EQ(0U, CountBalloons()); 230 ASSERT_EQ(0U, CountBalloons());
231 } 231 }
232 232
233 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest,
234 ReloadIndependentlyTwoInfoBars) {
235 const size_t size_before = GetExtensionService()->extensions()->size();
236 LoadTestExtension();
237
238 // Open a new window so that there will be an info bar in each.
239 Browser* browser2 = CreateBrowser(browser()->profile());
240
241 CrashExtension(size_before);
242 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
243
244 TabContents* current_tab = browser()->GetSelectedTabContents();
245 ASSERT_TRUE(current_tab);
246 ASSERT_EQ(1U, CountBalloons());
247
248 TabContents* current_tab2 = browser2->GetSelectedTabContents();
249 ASSERT_TRUE(current_tab2);
250 ASSERT_EQ(1U, CountBalloons());
251
252 ReloadExtension(first_extension_id_);
253
254 SCOPED_TRACE("after reloading");
255 CheckExtensionConsistency(size_before);
256
257 // Both infobars should automatically hide after the extension is successfully
258 // reloaded.
259 ASSERT_EQ(0U, CountBalloons());
260 ASSERT_EQ(0U, CountBalloons());
261 }
262
263 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest,
264 ReloadIndependentlyTwoInfoBarsSameBrowser) {
265 const size_t size_before = GetExtensionService()->extensions()->size();
266 LoadTestExtension();
267
268 // Open a new window so that there will be an info bar in each.
269 Browser* browser2 = CreateBrowser(browser()->profile());
270
271 CrashExtension(size_before);
272 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
273
274 TabContents* current_tab = browser()->GetSelectedTabContents();
275 ASSERT_TRUE(current_tab);
276 ASSERT_EQ(1U, CountBalloons());
277
278 TabContents* current_tab2 = browser2->GetSelectedTabContents();
279 ASSERT_TRUE(current_tab2);
280 ASSERT_EQ(1U, CountBalloons());
281
282 // Move second window into first browser so there will be multiple tabs
283 // with the info bar for the same extension in one browser.
284 TabContentsWrapper* contents =
285 browser2->tabstrip_model()->DetachTabContentsAt(0);
286 browser()->tabstrip_model()->AppendTabContents(contents, true);
287 current_tab2 = browser()->GetSelectedTabContents();
288 ASSERT_EQ(1U, CountBalloons());
289 ASSERT_NE(current_tab2, current_tab);
290
291 ReloadExtension(first_extension_id_);
292
293 SCOPED_TRACE("after reloading");
294 CheckExtensionConsistency(size_before);
295
296 // Both infobars should automatically hide after the extension is successfully
297 // reloaded.
298 ASSERT_EQ(0U, CountBalloons());
299 browser()->SelectPreviousTab();
300 ASSERT_EQ(current_tab, browser()->GetSelectedTabContents());
301 ASSERT_EQ(0U, CountBalloons());
302 }
303
304 // Make sure that when we don't do anything about the crashed extension 233 // Make sure that when we don't do anything about the crashed extension
305 // and close the browser, it doesn't crash. The browser is closed implicitly 234 // and close the browser, it doesn't crash. The browser is closed implicitly
306 // at the end of each browser test. 235 // at the end of each browser test.
307 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, ShutdownWhileCrashed) { 236 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, ShutdownWhileCrashed) {
308 const size_t size_before = GetExtensionService()->extensions()->size(); 237 const size_t size_before = GetExtensionService()->extensions()->size();
309 LoadTestExtension(); 238 LoadTestExtension();
310 CrashExtension(size_before); 239 CrashExtension(size_before);
311 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size()); 240 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
312 } 241 }
313 242
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 LoadSecondExtension(); 359 LoadSecondExtension();
431 CrashExtension(size_before); 360 CrashExtension(size_before);
432 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size()); 361 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size());
433 CrashExtension(size_before); 362 CrashExtension(size_before);
434 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size()); 363 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
435 364
436 { 365 {
437 SCOPED_TRACE("first: reload"); 366 SCOPED_TRACE("first: reload");
438 TabContents* current_tab = browser()->GetSelectedTabContents(); 367 TabContents* current_tab = browser()->GetSelectedTabContents();
439 ASSERT_TRUE(current_tab); 368 ASSERT_TRUE(current_tab);
440 // At the beginning we should have one infobar displayed for each extension. 369 // At the beginning we should have one balloon displayed for each extension.
441 ASSERT_EQ(2U, CountBalloons()); 370 ASSERT_EQ(2U, CountBalloons());
442 ReloadExtension(first_extension_id_); 371 ReloadExtension(first_extension_id_);
443 // One of the infobars should hide after the extension is reloaded. 372 // One of the balloons should hide after the extension is reloaded.
444 ASSERT_EQ(1U, CountBalloons()); 373 ASSERT_EQ(1U, CountBalloons());
445 CheckExtensionConsistency(size_before); 374 CheckExtensionConsistency(size_before);
446 } 375 }
447 376
448 { 377 {
449 SCOPED_TRACE("second: balloon"); 378 SCOPED_TRACE("second: balloon");
450 AcceptNotification(0); 379 AcceptNotification(0);
451 CheckExtensionConsistency(size_before); 380 CheckExtensionConsistency(size_before);
452 CheckExtensionConsistency(size_before + 1); 381 CheckExtensionConsistency(size_before + 1);
453 } 382 }
(...skipping 29 matching lines...) Expand all
483 LoadSecondExtension(); 412 LoadSecondExtension();
484 CrashExtension(size_before); 413 CrashExtension(size_before);
485 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size()); 414 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size());
486 ASSERT_EQ(crash_size_before + 1, 415 ASSERT_EQ(crash_size_before + 1,
487 GetExtensionService()->terminated_extensions()->size()); 416 GetExtensionService()->terminated_extensions()->size());
488 417
489 GetExtensionService()->UnloadAllExtensions(); 418 GetExtensionService()->UnloadAllExtensions();
490 ASSERT_EQ(crash_size_before, 419 ASSERT_EQ(crash_size_before,
491 GetExtensionService()->terminated_extensions()->size()); 420 GetExtensionService()->terminated_extensions()->size());
492 } 421 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698