Verified Commit ffec1c99 by Varac

[tests] Check egress IP for VPN steps

parent c56cdc97
Pipeline #4578 failed with stages
in 13 minutes 58 seconds
......@@ -38,10 +38,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/
......
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
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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment