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
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_MEDIA_MEDIA_BROWSERTEST_H_
6#define CHROME_BROWSER_MEDIA_MEDIA_BROWSERTEST_H_
7
8#include <utility>
9#include <vector>
10
11#include "chrome/test/base/in_process_browser_test.h"
12
13namespace content {
14class TitleWatcher;
15}
16
17// Class used to automate running media related browser tests. The functions
18// assume that media files are located under files/media/ folder known to
19// the test http server.
20class MediaBrowserTest : public InProcessBrowserTest {
21 protected:
22  typedef std::pair<const char*, const char*> StringPair;
23
24  // Common test results.
25  static const char kEnded[];
26  static const char kError[];
27  static const char kFailed[];
28
29  MediaBrowserTest();
30  virtual ~MediaBrowserTest();
31
32  // Runs a html page with a list of URL query parameters.
33  // If http is true, the test starts a local http test server to load the test
34  // page, otherwise a local file URL is loaded inside the content shell.
35  // It uses RunTest() to check for expected test output.
36  void RunMediaTestPage(const char* html_page,
37                        std::vector<StringPair>* query_params,
38                        const char* expected, bool http);
39
40  // Opens a URL and waits for the document title to match either one of the
41  // default strings or the expected string.
42  base::string16 RunTest(const GURL& gurl, const char* expected);
43
44  virtual void AddWaitForTitles(content::TitleWatcher* title_watcher);
45};
46
47#endif  // CHROME_BROWSER_MEDIA_MEDIA_BROWSERTEST_H_
48