Merge in DNS/adguard-home from ADG-9679 to master Squashed commit of the following: commit d2a759b4636b7ec931bfba625827c8b91c60c7e7 Merge: a5e7eea169726171f0Author: Igor Lobanov <bniwredyc@gmail.com> Date: Mon Apr 14 16:05:01 2025 +0200 Merge remote-tracking branch 'origin/master' into ADG-9679 commit a5e7eea16e6c29d25290ee79b1918df8af59bb51 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Mon Apr 14 13:56:26 2025 +0200 vitest version bump commit 26620d1923d92b3a6eb9b80a364748f2f6f66030 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:39:11 2025 +0200 formatting commit dbab03d1316241eaff0fc9c99d58a1933e415d2b Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:37:55 2025 +0200 rollback experiments commit 4427d984177786f7d905915cf8080166b45d7b46 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:33:28 2025 +0200 checking dir structure commit 2cf7eed247d2869ed285dbee0bf32cf1d8df7e86 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:21:11 2025 +0200 fixed docker image builder commit 8bd06f412fad9dd09df0e076879bd2cbd2f30d1a Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:18:33 2025 +0200 home-js-builder version bump commit 2a83bfeb322a20ec4278e359b18d0466966ec043 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:17:38 2025 +0200 try to remove installation dependencies for e2e test (build is already available) commit 163e4581e83152f99058b798484468009e8e88b0 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 13:52:27 2025 +0200 Revert "changed nslookup to dig in e2e tests" This reverts commit ecb68200ea28e295f504338cc59c711b5540022b. commit 15f7c5e2c77e230da77a0f9de0bd9cce8451da95 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 13:45:40 2025 +0200 js-home-builder version bump commit ecb68200ea28e295f504338cc59c711b5540022b Author: Igor Lobanov <bniwredyc@gmail.com> Date: Wed Apr 9 15:07:39 2025 +0200 changed nslookup to dig in e2e tests commit 77c94a60be8839f3e0ad9d02e7dbb2ebd802d3d6 Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Wed Apr 9 11:09:15 2025 +0300 revert timeouts commit 9dfebc8bcaf2cd3258b39fcbd0f67ab51c2eb46d Merge: 912f4cb7b1cc6c00e4Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Wed Apr 9 11:02:19 2025 +0300 merge master commit 912f4cb7b71f02866244fe447ca0e7fbd2a015bb Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Wed Apr 9 10:48:59 2025 +0300 cleanup code commit 9da200ebca5b001f4952f33d819d90c1938920ee Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Thu Apr 3 17:39:20 2025 +0300 update tests commit 794e0bd0a92a41c4d3827b716eeab584a25bd3ed Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Thu Mar 13 18:15:58 2025 +0300 cleanup commit 9a523b4e255dd24c0f640bc279924ed2c13509a9 Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Thu Mar 13 18:04:34 2025 +0300 ADG-9679 add playwright test from python
90 lines
3.2 KiB
TypeScript
90 lines
3.2 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import { execSync } from 'child_process';
|
|
import { ADMIN_USERNAME, ADMIN_PASSWORD } from '../constants';
|
|
|
|
test.describe('General Settings', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/login.html');
|
|
await page.getByTestId('username').click();
|
|
await page.getByTestId('username').fill(ADMIN_USERNAME);
|
|
await page.getByTestId('password').click();
|
|
await page.getByTestId('password').fill(ADMIN_PASSWORD);
|
|
await page.keyboard.press('Tab');
|
|
await page.getByTestId('sign_in').click();
|
|
await page.waitForURL((url) => !url.href.endsWith('/login.html'));
|
|
});
|
|
|
|
test('should toggle browsing security feature and verify DNS changes', async ({ page }) => {
|
|
await page.goto('/#settings');
|
|
|
|
const browsingSecurity = await page.getByTestId('safebrowsing');
|
|
const browsingSecurityLabel = await browsingSecurity.locator('xpath=following-sibling::*[1]');
|
|
|
|
const initialState = await browsingSecurity.isChecked();
|
|
|
|
if (!initialState) {
|
|
await browsingSecurityLabel.click();
|
|
await expect(browsingSecurity).toBeChecked();
|
|
}
|
|
|
|
const resultEnabled = execSync('nslookup totalvirus.com 127.0.0.1').toString();
|
|
|
|
await browsingSecurityLabel.click();
|
|
await expect(browsingSecurity).not.toBeChecked();
|
|
|
|
const resultDisabled = execSync('nslookup totalvirus.com 127.0.0.1').toString();
|
|
|
|
expect(resultEnabled).not.toEqual(resultDisabled);
|
|
|
|
if (initialState) {
|
|
await browsingSecurityLabel.click();
|
|
await expect(browsingSecurity).toBeChecked();
|
|
}
|
|
});
|
|
|
|
test('should toggle parental control feature and verify DNS changes', async ({ page }) => {
|
|
await page.goto('/#settings');
|
|
|
|
const parentalControl = page.getByTestId('parental');
|
|
const parentalControlLabel = await parentalControl.locator('xpath=following-sibling::*[1]');
|
|
|
|
const initialState = await parentalControl.isChecked();
|
|
|
|
if (!initialState) {
|
|
await parentalControlLabel.click();
|
|
await expect(parentalControl).toBeChecked();
|
|
}
|
|
|
|
const resultEnabled = execSync('nslookup pornhub.com 127.0.0.1').toString();
|
|
|
|
await parentalControlLabel.click();
|
|
await expect(parentalControl).not.toBeChecked();
|
|
|
|
const resultDisabled = execSync('nslookup pornhub.com 127.0.0.1').toString();
|
|
|
|
expect(resultEnabled).not.toEqual(resultDisabled);
|
|
|
|
if (initialState) {
|
|
await parentalControlLabel.click();
|
|
await expect(parentalControl).toBeChecked();
|
|
}
|
|
});
|
|
|
|
test('should toggle safe search feature', async ({ page }) => {
|
|
await page.goto('/#settings');
|
|
|
|
const safeSearch = page.getByTestId('safesearch');
|
|
const safeSearchLabel = await safeSearch.locator('xpath=following-sibling::*[1]');
|
|
|
|
const initialState = await safeSearch.isChecked();
|
|
|
|
await safeSearchLabel.click();
|
|
|
|
await expect(safeSearch).not.toBeChecked({ checked: initialState });
|
|
|
|
await safeSearchLabel.click();
|
|
|
|
await expect(safeSearch).toBeChecked({ checked: initialState });
|
|
});
|
|
});
|