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
3// found in the LICENSE file.
4
5#include "base/command_line.h"
6#include "base/strings/utf_string_conversions.h"
7#include "chrome/browser/extensions/extension_apitest.h"
8#include "chrome/browser/infobars/infobar_service.h"
9#include "chrome/browser/infobars/simple_alert_infobar_delegate.h"
10#include "chrome/browser/ui/browser.h"
11#include "chrome/browser/ui/tabs/tab_strip_model.h"
12#include "chrome/test/base/test_switches.h"
13#include "extensions/common/switches.h"
14
15// Times out on win syzyasan, http://crbug.com/166026
16#if defined(SYZYASAN)
17#define MAYBE_GetAlertsForTab DISABLED_GetAlertsForTab
18#else
19#define MAYBE_GetAlertsForTab GetAlertsForTab
20#endif
21IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_GetAlertsForTab) {
22#if defined(OS_WIN) && defined(USE_ASH)
23  // Disable this test in Metro+Ash for now (http://crbug.com/262796).
24  if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests))
25    return;
26#endif
27
28  content::WebContents* web_contents =
29      browser()->tab_strip_model()->GetActiveWebContents();
30  ASSERT_TRUE(web_contents);
31  InfoBarService* infobar_service =
32      InfoBarService::FromWebContents(web_contents);
33  ASSERT_TRUE(infobar_service);
34
35  const char kAlertMessage[] = "Simple Alert Infobar.";
36  SimpleAlertInfoBarDelegate::Create(infobar_service,
37                                     infobars::InfoBarDelegate::kNoIconID,
38                                     base::ASCIIToUTF16(kAlertMessage), false);
39  CommandLine::ForCurrentProcess()->AppendSwitch(
40      extensions::switches::kEnableExperimentalExtensionApis);
41  ASSERT_TRUE(RunComponentExtensionTest("accessibility/get_alerts_for_tab"))
42      << message_;
43}
44