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