// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
function output(msg) {
chrome.devtools.inspectedWindow.eval("console.log(unescape('" +
escape(msg) + "'));")
}
var hadErrors = false;
function assertEquals(expected, actual) {
if (expected === actual)
return;
output("FAIL: expected '" + expected + "', got '" + actual + "'");
hadErrors = true;
throw "assertion failed";
}
function completeTest() {
if (!hadErrors)
output("PASS");
}
function step1() {
chrome.extension.sendRequest("foo", function(response) {
assertEquals('onRequest callback: "foo"', response);
step2();
});
}
function step2() {
var object = { "string": "foo", "number": 42 };
chrome.extension.sendRequest(object, function(response) {
assertEquals('onRequest callback: ' + JSON.stringify(object), response);
step3();
});
}
function step3() {
function onMessage(message) {
assertEquals("port.onMessage: foo", message);
completeTest();
}
var port = chrome.runtime.connect();
port.onMessage.addListener(onMessage);
port.postMessage("foo");
}
step1();