- add sources.
[platform/framework/web/crosswalk.git] / src / content / test / data / media / media_utils.js
1 // Copyright (c) 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 var QueryString = function() {
6   // Allows access to query parameters on the URL; e.g., given a URL like:
7   //    http://<server>/my.html?test=123&bob=123
8   // Parameters can then be accessed via QueryString.test or QueryString.bob.
9   var params = {};
10   // RegEx to split out values by &.
11   var r = /([^&=]+)=?([^&]*)/g;
12   // Lambda function for decoding extracted match values. Replaces '+' with
13   // space so decodeURIComponent functions properly.
14   function d(s) { return decodeURIComponent(s.replace(/\+/g, ' ')); }
15   var match;
16   while (match = r.exec(window.location.search.substring(1)))
17     params[d(match[1])] = d(match[2]);
18   return params;
19 }();
20
21 function failTest(msg) {
22   var failMessage = msg;
23   if (msg instanceof Event)
24     failMessage = msg.target + '.' + msg.type;
25   console.log("FAILED TEST: " + msg);
26   setResultInTitle('FAILED');
27 }
28
29 var titleChanged = false;
30 function setResultInTitle(title) {
31   // If document title is 'ENDED', then update it with new title to possibly
32   // mark a test as failure.  Otherwise, keep the first title change in place.
33   if (!titleChanged || document.title.toUpperCase() == 'ENDED')
34     document.title = title.toUpperCase();
35   console.log('Set document title to: ' + title + ', updated title: ' +
36               document.title);
37   titleChanged = true;
38 }
39
40 function installTitleEventHandler(element, event) {
41   element.addEventListener(event, function(e) {
42     setResultInTitle(event.toString());
43   }, false);
44 }
45
46 function convertToArray(input) {
47   if (Array.isArray(input))
48     return input;
49   return [input];
50 }