| # Copyright 2014 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. |
| |
| from autotest_lib.client.bin import test, utils |
| from autotest_lib.client.common_lib import error |
| from autotest_lib.client.common_lib.cros import chrome |
| |
| |
| class desktopui_ConnectivityDiagnostics(test.test): |
| """Basic sanity check of connectivity diagnostics in Chrome.""" |
| version = 1 |
| |
| |
| EXT_CODE = """ |
| var complete = false; |
| var success = false; |
| var error = false; |
| // Send a message to the connectivity diagnostics app asking it to run tests. |
| chrome.runtime.sendMessage( |
| "kodldpbjkkmmnilagfdheibampofhao", |
| { |
| command: "test" |
| }, function(result) { |
| complete = true; |
| if (result instanceof Object) { |
| success = result.success; |
| error = result.error; |
| } else { |
| success = result; |
| if (!success) { |
| error = "Tests threw an exception"; |
| } |
| } |
| console.log(result); |
| }); |
| """ |
| |
| |
| def run_once(self): |
| with chrome.Chrome(disable_default_apps=False, autotest_ext=True) as cr: |
| extension = cr.autotest_ext |
| extension.EvaluateJavaScript(self.EXT_CODE) |
| |
| utils.poll_for_condition( |
| lambda: extension.EvaluateJavaScript('complete;'), |
| exception = error.TestError('Tests failed to complete')) |
| |
| if not extension.EvaluateJavaScript('success;'): |
| raise error.TestFail(extension.EvaluateJavaScript('error;')) |