91 lines
3.6 KiB
Java
91 lines
3.6 KiB
Java
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
package org.mozilla.gecko.tests;
|
|
|
|
import org.mozilla.gecko.AppConstants;
|
|
import org.mozilla.gecko.preferences.GeckoPreferences;
|
|
import org.mozilla.mozstumbler.service.AppGlobals;
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.IntentFilter;
|
|
|
|
import com.jayway.android.robotium.solo.Condition;
|
|
|
|
/*
|
|
* This test enables (checkbox checked) the Fennec setting to contribute to MLS, then waits for
|
|
* a response Intent from the stumbler service to confirm it has started. Then, it disables the
|
|
* service in the setting, and waits for confirmation that the servie has stopped.
|
|
*/
|
|
public class testStumblerSetting extends BaseTest {
|
|
boolean mIsEnabled;
|
|
|
|
public void testStumblerSetting() {
|
|
if (!AppConstants.MOZ_STUMBLER_BUILD_TIME_ENABLED) {
|
|
mAsserter.info("Checking stumbler build config.", "Skipping test as Stumbler is not enabled in this build.");
|
|
return;
|
|
}
|
|
|
|
blockForGeckoReady();
|
|
|
|
selectMenuItem(mStringHelper.SETTINGS_LABEL);
|
|
mAsserter.ok(mSolo.waitForText(mStringHelper.SETTINGS_LABEL),
|
|
"The Settings menu did not load", mStringHelper.SETTINGS_LABEL);
|
|
|
|
String section = "^" + mStringHelper.MOZILLA_SECTION_LABEL + "$";
|
|
waitForEnabledText(section);
|
|
mSolo.clickOnText(section);
|
|
|
|
String itemTitle = "^" + mStringHelper.LOCATION_SERVICES_LABEL + "$";
|
|
boolean foundText = waitForPreferencesText(itemTitle);
|
|
mAsserter.ok(foundText, "Waiting for settings item " + itemTitle + " in section " + section,
|
|
"The " + itemTitle + " option is present in section " + section);
|
|
|
|
BroadcastReceiver enabledDisabledReceiver = new BroadcastReceiver() {
|
|
@Override
|
|
public void onReceive(Context context, Intent intent) {
|
|
if (intent.getAction().equals(AppGlobals.ACTION_TEST_SETTING_ENABLED)) {
|
|
mIsEnabled = true;
|
|
} else {
|
|
mIsEnabled = false;
|
|
}
|
|
}
|
|
};
|
|
|
|
Context context = getInstrumentation().getTargetContext();
|
|
IntentFilter intentFilter = new IntentFilter(AppGlobals.ACTION_TEST_SETTING_ENABLED);
|
|
intentFilter.addAction(AppGlobals.ACTION_TEST_SETTING_DISABLED);
|
|
context.registerReceiver(enabledDisabledReceiver, intentFilter);
|
|
|
|
boolean checked = mSolo.isCheckBoxChecked(itemTitle);
|
|
try {
|
|
mAsserter.ok(!checked, "Checking stumbler setting is unchecked.", "Unchecked as expected.");
|
|
|
|
waitForEnabledText(itemTitle);
|
|
mSolo.clickOnText(itemTitle);
|
|
|
|
mSolo.waitForCondition(new Condition() {
|
|
@Override
|
|
public boolean isSatisfied() {
|
|
return mIsEnabled;
|
|
}
|
|
}, 15000);
|
|
|
|
mAsserter.ok(mIsEnabled, "Checking if stumbler became enabled.", "Stumbler is enabled.");
|
|
mSolo.clickOnText(itemTitle);
|
|
|
|
mSolo.waitForCondition(new Condition() {
|
|
@Override
|
|
public boolean isSatisfied() {
|
|
return !mIsEnabled;
|
|
}
|
|
}, 15000);
|
|
|
|
mAsserter.ok(!mIsEnabled, "Checking if stumbler became disabled.", "Stumbler is disabled.");
|
|
} finally {
|
|
context.unregisterReceiver(enabledDisabledReceiver);
|
|
}
|
|
}
|
|
}
|