michael@0: package org.mozilla.gecko.tests; michael@0: michael@0: import java.util.ArrayList; michael@0: michael@0: import org.mozilla.gecko.Actions; michael@0: import org.mozilla.gecko.PaintedSurface; michael@0: michael@0: import android.widget.CheckBox; michael@0: michael@0: public class testPermissions extends PixelTest { michael@0: public void testPermissions() { michael@0: blockForGeckoReady(); michael@0: michael@0: geolocationTest(); michael@0: } michael@0: michael@0: private void geolocationTest() { michael@0: Actions.RepeatedEventExpecter paintExpecter; michael@0: michael@0: // Test geolocation notification michael@0: loadAndPaint(getAbsoluteUrl("/robocop/robocop_geolocation.html")); michael@0: waitForText("wants your location"); michael@0: michael@0: // Uncheck the "Don't ask again for this site" checkbox michael@0: ArrayList checkBoxes = mSolo.getCurrentViews(CheckBox.class); michael@0: mAsserter.ok(checkBoxes.size() == 1, "checkbox count", "only one checkbox visible"); michael@0: mAsserter.ok(mSolo.isCheckBoxChecked(0), "checkbox checked", "checkbox is checked"); michael@0: mSolo.clickOnCheckBox(0); michael@0: mAsserter.ok(!mSolo.isCheckBoxChecked(0), "checkbox not checked", "checkbox is not checked"); michael@0: michael@0: // Test "Share" button functionality with unchecked checkbox michael@0: paintExpecter = mActions.expectPaint(); michael@0: mSolo.clickOnText("Share"); michael@0: PaintedSurface painted = waitForPaint(paintExpecter); michael@0: paintExpecter.unregisterListener(); michael@0: try { michael@0: mAsserter.ispixel(painted.getPixelAt(10, 10), 0, 0x80, 0, "checking page background is green"); michael@0: } finally { michael@0: painted.close(); michael@0: } michael@0: michael@0: // Re-trigger geolocation notification michael@0: reloadAndPaint(); michael@0: waitForText("wants your location"); michael@0: michael@0: // Make sure the checkbox is checked this time michael@0: mAsserter.ok(mSolo.isCheckBoxChecked(0), "checkbox checked", "checkbox is checked"); michael@0: michael@0: // Test "Share" button functionality with checked checkbox michael@0: paintExpecter = mActions.expectPaint(); michael@0: mSolo.clickOnText("Share"); michael@0: painted = waitForPaint(paintExpecter); michael@0: paintExpecter.unregisterListener(); michael@0: try { michael@0: mAsserter.ispixel(painted.getPixelAt(10, 10), 0, 0x80, 0, "checking page background is green"); michael@0: } finally { michael@0: painted.close(); michael@0: } michael@0: michael@0: // When we reload the page, location should be automatically shared michael@0: painted = reloadAndGetPainted(); michael@0: try { michael@0: mAsserter.ispixel(painted.getPixelAt(10, 10), 0, 0x80, 0, "checking page background is green"); michael@0: } finally { michael@0: painted.close(); michael@0: } michael@0: } michael@0: }