Home | History | Annotate | Download | only in browser
      1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // This is a file for random testcases that we run into that at one point or
      6 // another have crashed the program.
      7 
      8 #include "chrome/test/ui/ui_test.h"
      9 
     10 #include "base/basictypes.h"
     11 #include "base/file_path.h"
     12 #include "chrome/common/chrome_switches.h"
     13 #include "net/base/net_util.h"
     14 
     15 class GoogleTest : public UITest {
     16  protected:
     17   GoogleTest() : UITest() {
     18     FilePath test_file =
     19         test_data_directory_.AppendASCII("google").AppendASCII("google.html");
     20     set_homepage(GURL(net::FilePathToFileURL(test_file)).spec());
     21   }
     22 };
     23 
     24 TEST_F(GoogleTest, Crash) {
     25   std::wstring page_title = L"Google";
     26 
     27   // Make sure the navigation succeeded.
     28   EXPECT_EQ(page_title, GetActiveTabTitle());
     29 
     30   // UITest will check if this crashed.
     31 }
     32 
     33 class ColumnLayout : public UITest {
     34  protected:
     35   ColumnLayout() : UITest() {
     36     FilePath test_file = test_data_directory_.AppendASCII("columns.html");
     37     set_homepage(GURL(net::FilePathToFileURL(test_file)).spec());
     38   }
     39 };
     40 
     41 TEST_F(ColumnLayout, Crash) {
     42   std::wstring page_title = L"Column test";
     43 
     44   // Make sure the navigation succeeded.
     45   EXPECT_EQ(page_title, GetActiveTabTitle());
     46 
     47   // UITest will check if this crashed.
     48 }
     49 
     50 // By passing kTryChromeAgain with a magic value > 10000 we cause Chrome
     51 // to exit fairly early.
     52 // Quickly exiting Chrome (regardless of this particular flag -- it
     53 // doesn't do anything other than cause Chrome to quit on startup on
     54 // non-Windows) was a cause of crashes (see bug 34799 for example) so
     55 // this is a useful test of the startup/quick-shutdown cycle.
     56 class EarlyReturnTest : public UITest {
     57  public:
     58   EarlyReturnTest() {
     59     wait_for_initial_loads_ = false;  // Don't wait for any pages to load.
     60     launch_arguments_.AppendSwitchASCII(switches::kTryChromeAgain, "10001");
     61   }
     62 };
     63 
     64 // Disabled: http://crbug.com/45115
     65 // Due to limitations in our test infrastructure, this test currently doesn't
     66 // work.
     67 TEST_F(EarlyReturnTest, DISABLED_ToastCrasher) {
     68   // UITest will check if this crashed.
     69 }
     70