summaryrefslogtreecommitdiff
path: root/app/src/androidTest/java/se/leap/bitmaskclient/test/testDashboard.java
blob: bbc3e97db955aec11e1d6b7073c7219df845a0bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package se.leap.bitmaskclient.test;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.provider.Settings;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import com.jayway.android.robotium.solo.Solo;
import se.leap.bitmaskclient.ConfigurationWizard;
import se.leap.bitmaskclient.Dashboard;
import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.test.ConnectionManager;

public class testDashboard extends ActivityInstrumentationTestCase2<Dashboard> {

	private Solo solo;
	
	public testDashboard() {
		super(Dashboard.class);
	}

	@Override
	protected void setUp() throws Exception {
		super.setUp();
		solo = new Solo(getInstrumentation(), getActivity());
		ConnectionManager.setMobileDataEnabled(true, solo.getCurrentActivity().getApplicationContext());
	}

	@Override
	protected void tearDown() throws Exception { 
		solo.finishOpenedActivities();
	}
	
	/**
	 * This test will fail if Android does not trust VPN connection.
	 * I cannot automate that dialog.
	 */
	public void testOnOffOpenVpn() {
		solo.clickOnView(solo.getView(R.id.eipSwitch));
		if(!solo.waitForText(getActivity().getString(R.string.eip_status_start_pending)))
			fail();
		if(!solo.waitForText(getActivity().getString(R.string.state_auth)))
			fail();
		if(!solo.waitForText(getActivity().getString(R.string.eip_state_connected), 1, 30*1000))
			fail();
		
		solo.clickOnView(solo.getView(R.id.eipSwitch));
		if(!solo.waitForText(getActivity().getString(R.string.eip_state_not_connected)))
		    fail();
		
		/*ConnectionManager.setMobileDataEnabled(false, solo.getCurrentActivity().getApplicationContext());
		
		solo.clickOnView(solo.getView(R.id.eipSwitch));
		if(!solo.waitForText(getActivity().getString(R.string.eip_status_start_pending)))
			fail();
		if(!solo.waitForText(getActivity().getString(R.string.state_nonetwork)))
			fail();
		*/
	}
	
    public void testLogInAndOut() {
		long miliseconds_to_log_in = 40 * 1000;
		solo.clickOnActionBarItem(R.id.login_button);
		solo.enterText(0, "parmegvtest1");
		solo.enterText(1, " S_Zw3'-");
		solo.clickOnText("Log In");
		solo.waitForDialogToClose();
		solo.waitForDialogToClose(miliseconds_to_log_in);
		if(!solo.waitForText(getActivity().getString(R.string.succesful_authentication_message)))
			fail();

		solo.clickOnActionBarItem(R.string.logout_button);
		if(!solo.waitForDialogToClose())
			fail();
	}
	
	public void testShowAbout() {
  	        solo.clickOnMenuItem(getActivity().getString(R.string.about));
		solo.waitForText(getActivity().getString(R.string.repository_url_text));
		solo.goBack();
		
		solo.clickOnMenuItem(getActivity().getString(R.string.about));
		solo.waitForText(getActivity().getString(R.string.repository_url_text));
		solo.goBack();
	}
	
	public void testSwitchProvider() {
  	        solo.clickOnMenuItem(getActivity().getString(R.string.switch_provider_menu_option));
		solo.waitForActivity(ConfigurationWizard.class);
		solo.goBack();
	}
}