Bug 934678 - Write test for Home.banner API. r=wesj

This commit is contained in:
Margaret Leibovic 2013-11-05 15:24:21 -08:00
Родитель bcc8c6c4d6
Коммит 98862d9ce7
3 изменённых файлов: 77 добавлений и 0 удалений

Просмотреть файл

@ -57,6 +57,7 @@ skip-if = processor == "x86"
[testPrivateBrowsing]
[testReaderMode]
[testGetUserMedia]
[testHomeBanner]
# Used for Talos, please don't use in mochitest
#[testPan]

Просмотреть файл

@ -0,0 +1,38 @@
<html>
<head>
<title>HomeBanner test page</title>
<meta name="viewport" content="initial-scale=1.0"/>
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
<script type="application/javascript">
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://gre/modules/Home.jsm");
function sendMessageToJava(msg) {
return Services.androidBridge.handleGeckoMessage(JSON.stringify(msg));
}
const TEXT = "The quick brown fox jumps over the lazy dog.";
function start() {
var test = location.hash.substring(1);
window[test]();
}
function addMessage() {
Home.banner.add({
text: TEXT,
onclick: function() {
sendMessageToJava({ type: "TestHomeBanner:MessageClicked" });
},
onshown: function() {
sendMessageToJava({ type: "TestHomeBanner:MessageShown" });
}
});
sendMessageToJava({ type: "TestHomeBanner:MessageAdded" });
}
</script>
</head>
<body onload="start();">
</body>
</html>

Просмотреть файл

@ -0,0 +1,38 @@
#filter substitution
package @ANDROID_PACKAGE_NAME@.tests;
import @ANDROID_PACKAGE_NAME@.*;
public class testHomeBanner extends BaseTest {
private static final String TEST_URL = "chrome://roboextender/content/robocop_home_banner.html";
private static final String TEXT = "The quick brown fox jumps over the lazy dog.";
@Override
protected int getTestType() {
return TEST_MOCHITEST;
}
public void testHomeBanner() {
blockForGeckoReady();
Actions.EventExpecter eventExpecter = mActions.expectGeckoEvent("TestHomeBanner:MessageAdded");
// Add a message to the home banner
inputAndLoadUrl(TEST_URL + "#addMessage");
eventExpecter.blockForEvent();
// Load about:home, and test to make sure the onshown handler is called
eventExpecter = mActions.expectGeckoEvent("TestHomeBanner:MessageShown");
inputAndLoadUrl("about:home");
eventExpecter.blockForEvent();
// Verify that the correct message text showed up in the banner
mAsserter.ok(waitForText(TEXT), "banner text", "correct text appeared in the home banner");
// Test to make sure the onclick handler is called
eventExpecter = mActions.expectGeckoEvent("TestHomeBanner:MessageClicked");
mSolo.clickOnText(TEXT);
eventExpecter.blockForEvent();
}
}