michael@0: package org.mozilla.gecko.tests; michael@0: michael@0: michael@0: public class testBookmark extends AboutHomeTest { michael@0: private static String BOOKMARK_URL; michael@0: private static int WAIT_FOR_BOOKMARKED_TIMEOUT = 10000; michael@0: michael@0: public void testBookmark() { michael@0: BOOKMARK_URL = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL); michael@0: runAboutHomeTest(); michael@0: runMenuTest(); michael@0: } michael@0: michael@0: public void runMenuTest() { michael@0: mAsserter.is(mDatabaseHelper.isBookmark(BOOKMARK_URL), false, "Page is not bookmarked initially"); michael@0: setUpBookmark(); // loads the page, taps the star button, and waits for the "Bookmark Added" message michael@0: waitForBookmarked(true); michael@0: michael@0: cleanUpBookmark(); // loads the page, taps the star button, and waits for the "Bookmark Removed" message michael@0: waitForBookmarked(false); michael@0: } michael@0: michael@0: public void runAboutHomeTest() { michael@0: blockForGeckoReady(); michael@0: for (String url:StringHelper.DEFAULT_BOOKMARKS_URLS) { michael@0: mAsserter.ok(mDatabaseHelper.isBookmark(url), "Checking that " + url + " is bookmarked by default", url + " is bookmarked"); michael@0: } michael@0: michael@0: mDatabaseHelper.addOrUpdateMobileBookmark(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE, BOOKMARK_URL); michael@0: waitForBookmarked(true); michael@0: michael@0: isBookmarkDisplayed(BOOKMARK_URL); michael@0: loadBookmark(BOOKMARK_URL); michael@0: waitForText(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE); michael@0: verifyPageTitle(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE); michael@0: michael@0: mDatabaseHelper.deleteBookmark(BOOKMARK_URL); michael@0: waitForBookmarked(false); michael@0: } michael@0: michael@0: private void waitForBookmarked(final boolean isBookmarked) { michael@0: boolean bookmarked = waitForTest(new BooleanTest() { michael@0: @Override michael@0: public boolean test() { michael@0: return (isBookmarked) ? michael@0: mDatabaseHelper.isBookmark(BOOKMARK_URL) : michael@0: !mDatabaseHelper.isBookmark(BOOKMARK_URL); michael@0: } michael@0: }, WAIT_FOR_BOOKMARKED_TIMEOUT); michael@0: mAsserter.is(bookmarked, true, BOOKMARK_URL + " was " + (isBookmarked ? "added as a bookmark" : "removed from bookmarks")); michael@0: } michael@0: michael@0: private void setUpBookmark() { michael@0: // Bookmark a page for the test michael@0: loadUrl(BOOKMARK_URL); michael@0: waitForText(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE); michael@0: toggleBookmark(); michael@0: mAsserter.is(waitForText(StringHelper.BOOKMARK_ADDED_LABEL), true, "bookmark added successfully"); michael@0: } michael@0: michael@0: private void cleanUpBookmark() { michael@0: // Go back to the page we bookmarked michael@0: loadUrl(BOOKMARK_URL); michael@0: waitForText(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE); michael@0: toggleBookmark(); michael@0: mAsserter.is(waitForText(StringHelper.BOOKMARK_REMOVED_LABEL), true, "bookmark removed successfully"); michael@0: } michael@0: }