Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
54fbe8c
tests: new tests added and flaky test issue solved.
jturfanbasis Sep 25, 2025
d58037b
tests: respect browser config; select chromium/firefox/webkit and fix…
jturfanbasis Oct 1, 2025
b805794
fix: disableanimation method moved to basetest
jturfanbasis Oct 9, 2025
5164693
refactor: update test names for better readability
jturfanbasis Oct 14, 2025
0fac2f7
fix:cross-browser running enabled in jenkins
jturfanbasis Oct 14, 2025
e712b01
fix:cross-browser running enabled in jenkins
jturfanbasis Oct 14, 2025
9ad9d16
refactor: update test names for better readability
jturfanbasis Oct 15, 2025
9be207e
remove: css animation disabling
jturfanbasis Oct 16, 2025
dfd2ce0
test: new tests added
jturfanbasis Oct 22, 2025
136ae8f
Merge branch 'main' into playwright-tests
jturfanbasis Oct 22, 2025
165e2ba
delete: empty test classes
jturfanbasis Oct 27, 2025
4df90d8
Delete src/test/java/com/webforj/samples/views/drawer/DrawerAutoFocus…
jturfanbasis Oct 27, 2025
7250bbb
Delete src/test/java/com/webforj/samples/views/button/ButtonThemesVie…
jturfanbasis Oct 27, 2025
14e6ace
fix: local host 8998 to 8080
jturfanbasis Oct 27, 2025
3686d0f
Merge branch 'main' of https://github.com/webforj/webforj-documentati…
jturfanbasis Oct 27, 2025
436ff51
Merge branch 'playwright-tests' of https://github.com/webforj/webforj…
jturfanbasis Oct 27, 2025
1f8c29b
tests: Playwright Integration Tests Added
jturfanbasis Oct 29, 2025
bebe52e
Delete src/test/java/com/webforj/samples/config/RunConfig.java
jturfanbasis Oct 29, 2025
98b616f
tests: Playwright Integration Tests Added
jturfanbasis Oct 29, 2025
e5dd3e0
Resolve merge: keep RunConfig.java required by Playwright BaseTest an…
jturfanbasis Oct 29, 2025
e5a420c
fix: re-added runconfig
jturfanbasis Oct 29, 2025
dce9de8
Merge branch 'main' into playwright-tests
jturfanbasis Nov 1, 2025
1c7be1b
Merge branch 'main' into playwright-tests
hyyan Nov 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/test/java/com/webforj/samples/config/RunConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class RunConfig {
static {
// Parse webforj.e2e if provided
String e2eProps = System.getProperty("webforj.e2e");
if (e2eProps != null && !e2eProps.isEmpty()) {
if (e2eProps != null && !e2eProps.isEmpty()) {
parseE2EProps(e2eProps);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.webforj.samples.pages.busyindicator;

import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;

public class BusyDemoPage {

private static final String ROUTE = "busydemo";

private final Locator busyIndicator;
private final Locator nameInput;

public BusyDemoPage(Page page) {
this.busyIndicator = page.getByRole(AriaRole.DIALOG);
this.nameInput = page.getByRole(AriaRole.TEXTBOX, new Page.GetByRoleOptions().setName("Name"));
}

public static String getRoute() {
return ROUTE;
}

public Locator getBusyIndicator() {
return busyIndicator;
}

public Locator getNameInput() {
return nameInput;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.webforj.samples.pages.checkbox;

import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;

public class CheckboxExpansePage {


private static final String ROUTE = "checkboxexpanse";

private final Locator checkboxXSmall;

public CheckboxExpansePage(Page page) {
this.checkboxXSmall = page.getByRole(AriaRole.CHECKBOX, new Page.GetByRoleOptions().setName("XSMALL"));
}

public static String getRoute() {
return ROUTE;
}

public Locator getCheckboxXSmall() {
return checkboxXSmall;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.webforj.samples.pages.checkbox;

import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;

public class CheckboxIndeterminatePage {

private static final String ROUTE = "checkboxindeterminate";

private final Locator parentCheckbox;
private final Locator child1Checkbox;
private final Locator child2Checkbox;

public CheckboxIndeterminatePage(Page page) {
this.parentCheckbox = page.getByRole(AriaRole.CHECKBOX, new Page.GetByRoleOptions().setName("Parent"));
this.child1Checkbox = page.getByRole(AriaRole.CHECKBOX, new Page.GetByRoleOptions().setName("Child 1"));
this.child2Checkbox = page.getByRole(AriaRole.CHECKBOX, new Page.GetByRoleOptions().setName("Child 2"));
}

public static String getRoute() {
return ROUTE;
}

public Locator getParentCheckbox() {
return parentCheckbox;
}

public Locator getChild1Checkbox() {
return child1Checkbox;
}

public Locator getChild2Checkbox() {
return child2Checkbox;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.webforj.samples.pages.columnslayout;

import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;

public class ColumnsLayoutAlignmentPage {

private static final String ROUTE = "columnslayoutalignment";

private final Locator firstName;
private final Locator lastName;

public ColumnsLayoutAlignmentPage(Page page) {
this.firstName = page.getByRole(AriaRole.TEXTBOX, new Page.GetByRoleOptions().setName("First Name"));
this.lastName = page.getByRole(AriaRole.TEXTBOX, new Page.GetByRoleOptions().setName("Last Name"));
}

public static String getRoute() {
return ROUTE;
}

public Locator getFirstName() {
return firstName;
}

public Locator getLastName() {
return lastName;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.webforj.samples.pages.dialog;

import com.microsoft.playwright.Page;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.options.AriaRole;

public class DialogBackdropBlurPage {

private static final String ROUTE = "dialogbackdropblur";

private final Locator dwcDialog;
private final Locator backgroundBlur;

public DialogBackdropBlurPage(Page page) {
this.dwcDialog = page.locator("dwc-dialog");
this.backgroundBlur = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Toggle Background Blur"));
}

public static String getRoute() {
return ROUTE;
}

public Locator getDwcDialog() {
return dwcDialog;
}

public Locator getBackgroundBlur() {
return backgroundBlur;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.webforj.samples.pages.dialog;

import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;

public class DialogClosePage {

private static final String ROUTE = "dialogclose";

private final Locator dialog;
private final Locator closeDialogButton;
private final Locator showDialogButton;

public DialogClosePage(Page page) {
this.dialog = page.getByRole(AriaRole.DIALOG);
this.closeDialogButton = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Close Dialog"));
this.showDialogButton = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Show Dialog"));
}

public static String getRoute() {
return ROUTE;
}

public Locator getDialog() {
return dialog;
}

public Locator getCloseDialogButton() {
return closeDialogButton;
}

public Locator getShowDialogButton() {
return showDialogButton;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
package com.webforj.samples.pages.drawer;

import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;

public class DrawerAutoFocusPage {


private static final String ROUTE = "drawerautofocus";

private final Locator emailNotifications;

public DrawerAutoFocusPage(Page page) {
this.emailNotifications = page.getByRole(AriaRole.CHECKBOX, new Page.GetByRoleOptions().setName("Email Notifications"));
}

public static String getRoute() {
return ROUTE;
}

public Locator getEmailNotifications() {
return emailNotifications;
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,54 @@
package com.webforj.samples.pages.drawer;

import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;

public class DrawerTaskPage {


private static final String ROUTE = "drawertask";

private final Locator drawer;
private final Locator meetingCheckbox;
private final Locator clearButton;
private final Locator newTaskInput;
private final Locator addTaskButton;
private final Locator newTaskCheckbox;

public DrawerTaskPage(Page page) {
this.drawer = page.locator("dwc-drawer");
this.meetingCheckbox = page.getByRole(AriaRole.CHECKBOX, new Page.GetByRoleOptions().setName("Call John about the meeting"));
this.clearButton = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Clear Completed"));
this.newTaskInput = page.getByRole(AriaRole.TEXTBOX, new Page.GetByRoleOptions().setName("New Task"));
this.addTaskButton = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Add Task"));
this.newTaskCheckbox = page.getByRole(AriaRole.CHECKBOX, new Page.GetByRoleOptions().setName("New Task from IT"));
}

public static String getRoute() {
return ROUTE;
}

public Locator getDrawer() {
return drawer;
}

public Locator getMeetingCheckbox() {
return meetingCheckbox;
}

public Locator getClearButton() {
return clearButton;
}

public Locator getNewTaskInput() {
return newTaskInput;
}

public Locator getAddTaskButton() {
return addTaskButton;
}

public Locator getNewTaskCheckbox() {
return newTaskCheckbox;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.webforj.samples.pages.element;

import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;

public class ElementInputTextPage {

private static final String ROUTE = "elementinputtext";

private final Locator inputField;

public ElementInputTextPage(Page page) {
this.inputField = page.getByRole(AriaRole.TEXTBOX);
}

public static String getRoute() {
return ROUTE;
}

public Locator getInputField() {
return inputField;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.webforj.samples.pages.fields.timefield;

import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;

public class TimeFieldPage {

private static final String ROUTE = "timefield";

private final Locator reminder;

public TimeFieldPage(Page page) {
this.reminder = page.getByRole(AriaRole.TEXTBOX, new Page.GetByRoleOptions().setName("Set Reminder:").setExact(true));
}

public static String getRoute() {
return ROUTE;
}

public Locator getReminder() {
return reminder;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.webforj.samples.pages.flexlayout;

import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;

public class FlexBasisPage {

private static final String ROUTE = "flexbasis";

private final Locator setBasisButton;
private final Locator numberField;
private final Locator box1;

public FlexBasisPage(Page page) {
this.setBasisButton = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Set basis"));
this.numberField = page.getByRole(AriaRole.SPINBUTTON, new Page.GetByRoleOptions().setName("Basis •"));
this.box1 = page.locator("dwc-button").filter(new Locator.FilterOptions().setHas(page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Box 1"))));
}

public static String getRoute() {
return ROUTE;
}

public Locator getSetBasisButton() {
return setBasisButton;
}

public Locator getNumberField() {
return numberField;
}

public Locator getBox1() {
return box1;
}

}
Loading