Home | History | Annotate | Download | only in desktopui_ConnectivityDiagnostics
      1 # Copyright 2014 The Chromium OS 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 from autotest_lib.client.bin import test, utils
      6 from autotest_lib.client.common_lib import error
      7 from autotest_lib.client.common_lib.cros import chrome
      8 
      9 
     10 class desktopui_ConnectivityDiagnostics(test.test):
     11     """Basic sanity check of connectivity diagnostics in Chrome."""
     12     version = 1
     13 
     14 
     15     EXT_CODE = """
     16 var complete = false;
     17 var success = false;
     18 var error = false;
     19 // Send a message to the connectivity diagnostics app asking it to run tests.
     20 chrome.runtime.sendMessage(
     21     "kodldpbjkkmmnilagfdheibampofhao",
     22     {
     23       command: "test"
     24     }, function(result) {
     25       complete = true;
     26       if (result instanceof Object) {
     27         success = result.success;
     28         error = result.error;
     29       } else {
     30         success = result;
     31         if (!success) {
     32           error = "Tests threw an exception";
     33         }
     34       }
     35       console.log(result);
     36     });
     37 """
     38 
     39 
     40     def run_once(self):
     41         with chrome.Chrome(disable_default_apps=False, autotest_ext=True) as cr:
     42             extension = cr.autotest_ext
     43             extension.EvaluateJavaScript(self.EXT_CODE)
     44 
     45             utils.poll_for_condition(
     46                     lambda: extension.EvaluateJavaScript('complete;'),
     47                     exception = error.TestError('Tests failed to complete'))
     48 
     49             if not extension.EvaluateJavaScript('success;'):
     50                 raise error.TestFail(extension.EvaluateJavaScript('error;'))
     51