Home | History | Annotate | Download | only in media
      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_COMMON_H_
      6 #define CHROME_BROWSER_MEDIA_WEBRTC_BROWSERTEST_COMMON_H_
      7 
      8 #include <string>
      9 
     10 #include "base/files/file_path.h"
     11 #include "base/process/process_handle.h"
     12 
     13 namespace content {
     14 class WebContents;
     15 }
     16 
     17 namespace test {
     18 
     19 // Reference file locations.
     20 
     21 // Checks if the user has the reference files directory, returns true if so.
     22 // If the user's checkout don't have these dirs, they need to configure their
     23 // .gclient as described in chrome/test/data/webrtc/resources/README. The reason
     24 // for this is that we don't want to burden regular chrome devs with downloading
     25 // these sizable reference files by default.
     26 bool HasReferenceFilesInCheckout();
     27 
     28 // Verifies both the YUV and Y4M version of the reference file exists.
     29 bool HasYuvAndY4mFile(const base::FilePath::CharType* reference_file);
     30 
     31 // Retrieves the reference files dir, to which file names can be appended.
     32 base::FilePath GetReferenceFilesDir();
     33 
     34 extern const base::FilePath::CharType kReferenceFileName360p[];
     35 extern const base::FilePath::CharType kReferenceFileName720p[];
     36 extern const base::FilePath::CharType kYuvFileExtension[];
     37 extern const base::FilePath::CharType kY4mFileExtension[];
     38 
     39 // Executes javascript code which will sleep for |timeout_msec| milliseconds.
     40 // Returns true on success.
     41 bool SleepInJavascript(content::WebContents* tab_contents, int timeout_msec);
     42 
     43 // This function will execute the provided |javascript| until it causes a call
     44 // to window.domAutomationController.send() with |evaluates_to| as the message.
     45 // That is, we are NOT checking what the javascript evaluates to. Returns false
     46 // if we exceed the TestTimeouts::action_max_timeout().
     47 // TODO(phoglund): Consider a better interaction method with the javascript
     48 // than polling javascript methods.
     49 bool PollingWaitUntil(const std::string& javascript,
     50                       const std::string& evaluates_to,
     51                       content::WebContents* tab_contents);
     52 bool PollingWaitUntil(const std::string& javascript,
     53                       const std::string& evaluates_to,
     54                       content::WebContents* tab_contents,
     55                       int poll_interval_msec);
     56 
     57 }  // namespace test
     58 
     59 #endif  // CHROME_BROWSER_MEDIA_WEBRTC_BROWSERTEST_COMMON_H_
     60