You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.7 KiB
64 lines
1.7 KiB
# Copyright 2017 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import os
|
|
import tempfile
|
|
|
|
|
|
HTML_TEMPLATE = """<!DOCTYPE html>
|
|
<html>
|
|
<body id="body">
|
|
<h1>{title}</h1>
|
|
<p>Status: <span id="status">not-started</span></p>
|
|
{scripts}
|
|
</body>
|
|
</html>
|
|
"""
|
|
|
|
|
|
def generate_test_html(title, *scripts):
|
|
"""
|
|
Generates HTML contents for WebRTC tests.
|
|
|
|
@param title: The title of the page.
|
|
@param scripts: Paths to the javascript files to include.
|
|
@returns HTML contents.
|
|
"""
|
|
script_tag_list = [
|
|
'<script src="{}"></script>'.format(script)
|
|
for script in scripts
|
|
]
|
|
script_tags = '\n'.join(script_tag_list)
|
|
return HTML_TEMPLATE.format(title=title, scripts=script_tags)
|
|
|
|
|
|
def get_common_script_path(script):
|
|
"""
|
|
Gets the file path to a common script.
|
|
|
|
@param script: The file name of the script, e.g. 'foo.js'
|
|
@returns The absolute path to the script.
|
|
"""
|
|
return os.path.join(
|
|
os.path.dirname(__file__), 'webrtc_scripts', script)
|
|
|
|
|
|
def create_temp_html_file(title, tmpdir, *scripts):
|
|
"""
|
|
Creates a temporary file with HTML contents for WebRTC tests.
|
|
|
|
@param title: The title of the page.
|
|
@param tmpdir: Directory to put the temporary file.
|
|
@param scripts: Paths to the javascript files to load.
|
|
@returns The file object containing the HTML.
|
|
"""
|
|
html = generate_test_html(
|
|
title, *scripts)
|
|
html_file = tempfile.NamedTemporaryFile(
|
|
suffix = '.html', dir = tmpdir, delete = False)
|
|
html_file.write(html)
|
|
html_file.close()
|
|
return html_file
|
|
|