From c9c5a59acc8e1527cc8c5b4e631c9fc58a3c447f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danilo=20Je=C5=A1i=C4=87?= <34022788+djesic@users.noreply.github.com> Date: Thu, 8 Jun 2023 13:52:29 +0200 Subject: [PATCH] Talk - WIP --- Dockerfile | 1 + compose.yml | 2 +- create_chat.py | 35 +++++++++++++++++++++++++++++ join_chat.py | 23 +++++++++++++++++++ nextcloud_create_user_playwright.py | 31 +++++++++++++++++++++++++ nextcloud_install_playwright.py | 2 +- usage_scenario.yml | 2 +- 7 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 create_chat.py create mode 100644 join_chat.py create mode 100644 nextcloud_create_user_playwright.py diff --git a/Dockerfile b/Dockerfile index 41592153..263c1947 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,5 +12,6 @@ RUN pip install playwright # Set up Playwright dependencies for Chromium, Firefox and Webkit RUN playwright install +RUN playwright install-deps CMD ["/bin/bash"] diff --git a/compose.yml b/compose.yml index f868ca89..40bde84a 100644 --- a/compose.yml +++ b/compose.yml @@ -17,7 +17,7 @@ services: - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - app: + nc: image: nextcloud:26.0.1 restart: always ports: diff --git a/create_chat.py b/create_chat.py new file mode 100644 index 00000000..ac1e8a48 --- /dev/null +++ b/create_chat.py @@ -0,0 +1,35 @@ +from playwright.sync_api import Playwright, sync_playwright, expect + + +def run(playwright: Playwright) -> None: + browser = playwright.chromium.launch(headless=False) + context = browser.new_context() + page = context.new_page() + page.goto("http://localhost:8080/login") + page.get_by_label("Account name or email").click() + page.get_by_label("Account name or email").fill("Crash") + page.get_by_label("Account name or email").press("Tab") + page.get_by_label("Password", exact=True).fill("Override") + page.get_by_role("button", name="Log in").click() + page.get_by_role("link", name="Talk", exact=True).click() + page.get_by_placeholder("Search conversations or users").click() + page.locator("#app-content-vue").click() + page.get_by_role("button", name="Create a new group conversation").click() + page.locator("label").filter(has_text="Allow guests to join via link").locator("path").click() + page.get_by_placeholder("Conversation name").click() + page.get_by_placeholder("Conversation name").fill("Drum talk") + page.get_by_role("button", name="Create conversation").click() + page.get_by_role("button", name="Copy conversation link").click() + page.locator("#modal-description-ytlxf").get_by_role("button", name="Close", exact=True).click() + page.get_by_role("button", name="Reply").click() + page.get_by_role("textbox", name="Write message, @ to mention someone …").fill("Pretty good! Working on a new drum fill!") + page.get_by_role("textbox", name="Write message, @ to mention someone …").press("Enter") + page.close() + + # --------------------- + context.close() + browser.close() + + +with sync_playwright() as playwright: + run(playwright) diff --git a/join_chat.py b/join_chat.py new file mode 100644 index 00000000..5abaad71 --- /dev/null +++ b/join_chat.py @@ -0,0 +1,23 @@ +from playwright.sync_api import Playwright, sync_playwright, expect + + +def run(playwright: Playwright) -> None: + browser = playwright.chromium.launch(headless=False) + context = browser.new_context() + page = context.new_page() + page.goto("http://localhost:8080/call/2sfgz4ir") + page.get_by_role("button", name="Edit").click() + page.get_by_placeholder("Guest").fill("Splash") + page.get_by_role("button", name="Save name").click() + page.get_by_role("textbox", name="Write message, @ to mention someone …").click() + page.get_by_role("textbox", name="Write message, @ to mention someone …").fill("Hey, how's it going?") + page.get_by_role("textbox", name="Write message, @ to mention someone …").press("Enter") + page.close() + + # --------------------- + context.close() + browser.close() + + +with sync_playwright() as playwright: + run(playwright) diff --git a/nextcloud_create_user_playwright.py b/nextcloud_create_user_playwright.py new file mode 100644 index 00000000..4ec70657 --- /dev/null +++ b/nextcloud_create_user_playwright.py @@ -0,0 +1,31 @@ +from playwright.sync_api import Playwright, sync_playwright + + +def run(playwright: Playwright) -> None: + browser = playwright.chromium.launch(headless=False) + context = browser.new_context() + page = context.new_page() + page.goto("http://localhost:8080/login") + page.get_by_label("Account name or email").click() + page.get_by_label("Account name or email").fill("Crash") + page.get_by_label("Password", exact=True).click() + page.get_by_label("Password", exact=True).fill("Override") + page.get_by_role("button", name="Log in").click() + page.get_by_role("link", name="Open settings menu").click() + page.get_by_role("link", name="Users").click() + page.get_by_role("button", name="New user").click() + page.get_by_placeholder("Username").click() + page.get_by_placeholder("Username").fill("Splash") + page.get_by_placeholder("Display name").click() + page.get_by_placeholder("Display name").fill("Splash") + page.get_by_placeholder("Password", exact=True).click() + page.get_by_placeholder("Password", exact=True).fill("cymbals3533") + page.get_by_role("button", name="Add a new user").click() + + # --------------------- + context.close() + browser.close() + + +with sync_playwright() as playwright: + run(playwright) diff --git a/nextcloud_install_playwright.py b/nextcloud_install_playwright.py index ca265ab9..22e19ee2 100644 --- a/nextcloud_install_playwright.py +++ b/nextcloud_install_playwright.py @@ -10,7 +10,7 @@ async def main(): ) page = await browser.new_page() # await page.set_default_timeout(60_000) # milliseconds - await page.goto('http://app/') + await page.goto('http://nc/') # 1. Create User await page.type('#adminlogin', 'Crash') diff --git a/usage_scenario.yml b/usage_scenario.yml index db28adcd..dff4424f 100644 --- a/usage_scenario.yml +++ b/usage_scenario.yml @@ -33,7 +33,7 @@ services: networks: - nextcloud-setup-network - app: + nc: volumes: [] networks: - nextcloud-setup-network