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
15class 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
24TEST_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
33class 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
41TEST_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.
56class 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.
67TEST_F(EarlyReturnTest, DISABLED_ToastCrasher) {
68  // UITest will check if this crashed.
69}
70