- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / media / webrtc_browsertest_base.h
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_WEBRTC_BROWSERTEST_BASE_H_
6 #define CHROME_BROWSER_MEDIA_WEBRTC_BROWSERTEST_BASE_H_
7
8 #include <string>
9
10 #include "chrome/test/base/in_process_browser_test.h"
11
12 namespace content {
13 class WebContents;
14 }
15
16 class MediaStreamInfoBarDelegate;
17
18 // Base class for WebRTC browser tests with useful primitives for interacting
19 // getUserMedia. We use inheritance here because it makes the test code look
20 // as clean as it can be.
21 class WebRtcTestBase : public InProcessBrowserTest {
22  protected:
23   // Typical constraints.
24   static const char kAudioVideoCallConstraints[];
25   static const char kAudioOnlyCallConstraints[];
26   static const char kVideoOnlyCallConstraints[];
27
28   static const char kFailedWithPermissionDeniedError[];
29
30   WebRtcTestBase();
31   virtual ~WebRtcTestBase();
32
33   void GetUserMediaAndAccept(content::WebContents* tab_contents) const;
34   void GetUserMediaWithSpecificConstraintsAndAccept(
35       content::WebContents* tab_contents,
36       const std::string& constraints) const;
37   void GetUserMediaAndDeny(content::WebContents* tab_contents);
38   void GetUserMediaWithSpecificConstraintsAndDeny(
39       content::WebContents* tab_contents,
40       const std::string& constraints) const;
41   void GetUserMediaAndDismiss(content::WebContents* tab_contents) const;
42   void GetUserMedia(content::WebContents* tab_contents,
43                     const std::string& constraints) const;
44
45   content::WebContents* OpenPageAndAcceptUserMedia(const GURL& url) const;
46
47   void ConnectToPeerConnectionServer(const std::string& peer_name,
48                                      content::WebContents* tab_contents) const;
49   std::string ExecuteJavascript(const std::string& javascript,
50                                 content::WebContents* tab_contents) const;
51
52  private:
53   void CloseInfoBarInTab(content::WebContents* tab_contents,
54                          MediaStreamInfoBarDelegate* infobar) const;
55   MediaStreamInfoBarDelegate* GetUserMediaAndWaitForInfoBar(
56       content::WebContents* tab_contents,
57       const std::string& constraints) const;
58
59   DISALLOW_COPY_AND_ASSIGN(WebRtcTestBase);
60 };
61
62 #endif  // CHROME_BROWSER_MEDIA_WEBRTC_BROWSERTEST_BASE_H_