diff options
author | Varac <varac@leap.se> | 2017-07-21 17:54:39 +0200 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2017-08-16 17:30:20 -0400 |
commit | 9672d50008418645829c81cf21fa5dd79937ce8f (patch) | |
tree | 7f59788050a60a5e96d272e52cd20e0574095ca0 | |
parent | 185dfdc5c8a4b5711069abaf9d2a883bb4b1cd06 (diff) |
[tests] Check egress IP for VPN steps
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | tests/functional/features/smoke.feature | 30 | ||||
-rw-r--r-- | tests/functional/features/steps/vpn.py | 34 |
3 files changed, 58 insertions, 13 deletions
@@ -41,10 +41,13 @@ test_functional_setup: pip install behave selenium test_functional: - xvfb-run --server-args="-screen 0 1280x1024x24" behave --tags ~@wip --tags @smoke tests/functional/features -k -D host=localhost + xvfb-run --server-args="-screen 0 1280x1024x24" behave --tags ~@wip --tags @smoke tests/functional/features -k --no-capture -D host=localhost test_functional_graphical: - behave --tags ~@wip --tags @smoke tests/functional/features -k -D host=localhost + behave --tags ~@wip --tags @smoke tests/functional/features -k --no-capture -D host=localhost + +test_functional_graphical_wip: + behave --tags @wip tests/functional/features -k --no-capture -D host=localhost install_helpers: cp src/leap/bitmask/vpn/helpers/linux/bitmask-root /usr/local/sbin/ diff --git a/tests/functional/features/smoke.feature b/tests/functional/features/smoke.feature index efa3cad7..1e220116 100644 --- a/tests/functional/features/smoke.feature +++ b/tests/functional/features/smoke.feature @@ -1,19 +1,31 @@ Feature: login and logout + @smoke Scenario: See user panel after login Given I start bitmask for the first time - When I login - Then I should see the user panel + When I login + Then I should see the user panel + @smoke Scenario: Log in and log out Given I start bitmask for the first time - When I login - And I logout - Then I should see the second login page + When I login + And I logout + Then I should see the second login page @smoke - Scenario: Use VPN + Scenario: Turn VPN on + Given I start bitmask for the first time + And An initial network configuration + When I login + And I activate VPN + Then I should have my ass covered + + @wip + Scenario: Turn VPN on and off Given I start bitmask for the first time - When I login - And I activate VPN - Then I should have my ass covered + And An initial network configuration + When I login + And I activate VPN + And I deactivate VPN + Then My network should be configured as before diff --git a/tests/functional/features/steps/vpn.py b/tests/functional/features/steps/vpn.py index 056b2cdf..05ed2b54 100644 --- a/tests/functional/features/steps/vpn.py +++ b/tests/functional/features/steps/vpn.py @@ -1,10 +1,28 @@ -from behave import when, then +from behave import given, when, then from common import ( click_button, wait_until_button_is_visible, find_element_containing_text ) from selenium.common.exceptions import TimeoutException +# For checking IP +import requests + + +@given('An initial network configuration') +def record_ip(context): + context.initial_ip = _current_ip() + + +def _current_ip(): + url = 'https://wtfismyip.com/json' + + r = requests.get(url) + data = r.json() + + current_ip = data['YourFuckingIPAddress'] + print("Current IP: %s\n\n" % current_ip) + return current_ip @when('I activate VPN') @@ -19,4 +37,16 @@ def activate_vpn(context): @then('I should have my ass covered') def assert_vpn(context): wait_until_button_is_visible(context, 'Turn OFF') - assert find_element_containing_text(context, 'Turn OFF', 'button') + assert _current_ip() != context.initial_ip + + +@when('I deactivate VPN') +def deactivate_vpn(context): + click_button(context, 'Turn OFF') + wait_until_button_is_visible(context, 'Turn ON') + + +@then('My network should be configured as before') +def network_as_before(context): + ip = _current_ip() + assert ip == context.initial_ip |