diff options
Diffstat (limited to 'desktop')
2 files changed, 72 insertions, 55 deletions
diff --git a/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/openvpn-tunnel-state.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/openvpn-tunnel-state.spec.ts new file mode 100644 index 0000000000..b5e7a10b90 --- /dev/null +++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/openvpn-tunnel-state.spec.ts @@ -0,0 +1,72 @@ +import { expect, test } from '@playwright/test'; +import { exec as execAsync } from 'child_process'; +import { Page } from 'playwright'; +import { promisify } from 'util'; + +import { expectConnected } from '../../shared/tunnel-state'; +import { startInstalledApp } from '../installed-utils'; + +const exec = promisify(execAsync); + +// This test expects the daemon to be logged into an account that has time left, have OpenVPN +// selected and to be disconnected. + +let page: Page; + +test.beforeAll(async () => { + ({ page } = await startInstalledApp()); +}); + +test.afterAll(async () => { + await page.close(); +}); + +test('App should show correct tunnel protocol', async () => { + await page.getByText('Connect', { exact: true }).click(); + await expectConnected(page); + await page.getByTestId('connection-panel-chevron').click(); + + const tunnelProtocol = page.getByTestId('tunnel-protocol'); + await expect(tunnelProtocol).toHaveText('OpenVPN'); +}); + +test('App should show correct OpenVPN transport protocol and port', async () => { + const inData = page.getByTestId('in-ip'); + + await expect(inData).toContainText(new RegExp(':[0-9]+')); + await expect(inData).toContainText(new RegExp('(TCP|UDP)$')); + await exec('mullvad relay set tunnel openvpn --transport-protocol udp --port 1195'); + await expectConnected(page); + await page.getByTestId('connection-panel-chevron').click(); + await expect(inData).toContainText(new RegExp(':1195')); + + await exec('mullvad relay set tunnel openvpn --transport-protocol udp --port 1300'); + await expectConnected(page); + await page.getByTestId('connection-panel-chevron').click(); + await expect(inData).toContainText(new RegExp(':1300')); + + await exec('mullvad relay set tunnel openvpn --transport-protocol tcp --port any'); + await expectConnected(page); + await page.getByTestId('connection-panel-chevron').click(); + await expect(inData).toContainText(new RegExp(':[0-9]+')); + await expect(inData).toContainText(new RegExp('TCP$')); + + await exec('mullvad relay set tunnel openvpn --transport-protocol tcp --port 80'); + await expectConnected(page); + await page.getByTestId('connection-panel-chevron').click(); + await expect(inData).toContainText(new RegExp(':80')); + + await exec('mullvad relay set tunnel openvpn --transport-protocol tcp --port 443'); + await expectConnected(page); + await page.getByTestId('connection-panel-chevron').click(); + await expect(inData).toContainText(new RegExp(':443')); + + await exec('mullvad relay set tunnel openvpn --transport-protocol any'); +}); + +test('App should show bridge mode', async () => { + await exec('mullvad bridge set state on'); + await expectConnected(page); + const relay = page.getByTestId('hostname-line'); + await expect(relay).toHaveText(new RegExp(' via ', 'i')); +}); diff --git a/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/tunnel-state.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/tunnel-state.spec.ts index 3f767a8ffa..1d808dc98b 100644 --- a/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/tunnel-state.spec.ts +++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/tunnel-state.spec.ts @@ -95,61 +95,6 @@ test('App should connect with Shadowsocks', async () => { await expectConnected(page); }); -test('App should show correct tunnel protocol', async () => { - const tunnelProtocol = page.getByTestId('tunnel-protocol'); - await expect(tunnelProtocol).toHaveText('WireGuard'); - - await exec('mullvad relay set tunnel-protocol openvpn'); - await exec('mullvad relay set location se'); - await expectConnected(page); - await page.getByTestId('connection-panel-chevron').click(); - await expect(tunnelProtocol).toHaveText('OpenVPN'); -}); - -test('App should show correct OpenVPN transport protocol and port', async () => { - const inData = page.getByTestId('in-ip'); - - await expect(inData).toContainText(new RegExp(':[0-9]+')); - await expect(inData).toContainText(new RegExp('(TCP|UDP)$')); - await exec('mullvad relay set tunnel openvpn --transport-protocol udp --port 1195'); - await expectConnected(page); - await page.getByTestId('connection-panel-chevron').click(); - await expect(inData).toContainText(new RegExp(':1195')); - - await exec('mullvad relay set tunnel openvpn --transport-protocol udp --port 1300'); - await expectConnected(page); - await page.getByTestId('connection-panel-chevron').click(); - await expect(inData).toContainText(new RegExp(':1300')); - - await exec('mullvad relay set tunnel openvpn --transport-protocol tcp --port any'); - await expectConnected(page); - await page.getByTestId('connection-panel-chevron').click(); - await expect(inData).toContainText(new RegExp(':[0-9]+')); - await expect(inData).toContainText(new RegExp('TCP$')); - - await exec('mullvad relay set tunnel openvpn --transport-protocol tcp --port 80'); - await expectConnected(page); - await page.getByTestId('connection-panel-chevron').click(); - await expect(inData).toContainText(new RegExp(':80')); - - await exec('mullvad relay set tunnel openvpn --transport-protocol tcp --port 443'); - await expectConnected(page); - await page.getByTestId('connection-panel-chevron').click(); - await expect(inData).toContainText(new RegExp(':443')); - - await exec('mullvad relay set tunnel openvpn --transport-protocol any'); -}); - -test('App should show bridge mode', async () => { - await exec('mullvad bridge set state on'); - await expectConnected(page); - const relay = page.getByTestId('hostname-line'); - await expect(relay).toHaveText(new RegExp(' via ', 'i')); - await exec('mullvad bridge set state off'); - - await exec('mullvad relay set tunnel-protocol wireguard'); -}); - test('App should enter blocked state', async () => { await exec('mullvad debug block-connection'); await expectError(page); |
