diff --git a/test/SeleniumNeil/.idea/.gitignore b/test/SeleniumNeil/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/test/SeleniumNeil/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/test/SeleniumNeil/.idea/SeleniumNeil.iml b/test/SeleniumNeil/.idea/SeleniumNeil.iml
new file mode 100644
index 0000000..5fdd65b
--- /dev/null
+++ b/test/SeleniumNeil/.idea/SeleniumNeil.iml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/SeleniumNeil/.idea/inspectionProfiles/profiles_settings.xml b/test/SeleniumNeil/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/test/SeleniumNeil/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/SeleniumNeil/.idea/misc.xml b/test/SeleniumNeil/.idea/misc.xml
new file mode 100644
index 0000000..d1e22ec
--- /dev/null
+++ b/test/SeleniumNeil/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/test/SeleniumNeil/.idea/modules.xml b/test/SeleniumNeil/.idea/modules.xml
new file mode 100644
index 0000000..aa51822
--- /dev/null
+++ b/test/SeleniumNeil/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/SeleniumNeil/.idea/vcs.xml b/test/SeleniumNeil/.idea/vcs.xml
new file mode 100644
index 0000000..b2bdec2
--- /dev/null
+++ b/test/SeleniumNeil/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/SeleniumNeil/LRR b/test/SeleniumNeil/LRR
new file mode 160000
index 0000000..1a01b4f
--- /dev/null
+++ b/test/SeleniumNeil/LRR
@@ -0,0 +1 @@
+Subproject commit 1a01b4facd4c9d1cce59ef84da114f55a57f616d
diff --git a/test/SeleniumNeil/__pycache__/conftest.cpython-38-pytest-8.0.0.pyc b/test/SeleniumNeil/__pycache__/conftest.cpython-38-pytest-8.0.0.pyc
new file mode 100644
index 0000000..cfd6b88
Binary files /dev/null and b/test/SeleniumNeil/__pycache__/conftest.cpython-38-pytest-8.0.0.pyc differ
diff --git a/test/SeleniumNeil/__pycache__/conftest.cpython-38.pyc b/test/SeleniumNeil/__pycache__/conftest.cpython-38.pyc
new file mode 100644
index 0000000..e23fc2d
Binary files /dev/null and b/test/SeleniumNeil/__pycache__/conftest.cpython-38.pyc differ
diff --git a/test/SeleniumNeil/__pycache__/test_cases.cpython-38-pytest-8.0.0.pyc b/test/SeleniumNeil/__pycache__/test_cases.cpython-38-pytest-8.0.0.pyc
new file mode 100644
index 0000000..a3e0d0e
Binary files /dev/null and b/test/SeleniumNeil/__pycache__/test_cases.cpython-38-pytest-8.0.0.pyc differ
diff --git a/test/SeleniumNeil/helper.py b/test/SeleniumNeil/helper.py
new file mode 100644
index 0000000..bea59f9
--- /dev/null
+++ b/test/SeleniumNeil/helper.py
@@ -0,0 +1,33 @@
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium.webdriver.support import expected_conditions as EC
+from selenium.common.exceptions import NoSuchElementException, UnexpectedAlertPresentException
+
+
+def login(driver, url, username, password):
+ try:
+ driver.get(url)
+
+ # Fill in the login form
+ user_input = WebDriverWait(driver, 10).until(
+ EC.element_to_be_clickable((By.ID, "user_name"))
+ )
+ user_input.send_keys(username)
+
+ password_input = WebDriverWait(driver, 10).until(
+ EC.element_to_be_clickable((By.ID, "user_password"))
+ )
+ password_input.send_keys(password)
+
+ # Click the login button
+ login_button = WebDriverWait(driver, 10).until(
+ EC.element_to_be_clickable((By.ID, "login_btn"))
+ )
+ login_button.click()
+
+ # Wait for the admin_tab to become clickable
+ admin_tab = WebDriverWait(driver, 10).until(
+ EC.element_to_be_clickable((By.ID, "admin_tab"))
+ )
+ except (NoSuchElementException, UnexpectedAlertPresentException) as e:
+ return f"Error: {str(e)}"
diff --git a/test/SeleniumNeil/test_cases.py b/test/SeleniumNeil/test_script_352.py
similarity index 85%
rename from test/SeleniumNeil/test_cases.py
rename to test/SeleniumNeil/test_script_352.py
index c15e17b..d35c51e 100644
--- a/test/SeleniumNeil/test_cases.py
+++ b/test/SeleniumNeil/test_script_352.py
@@ -10,7 +10,9 @@ from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
+
def test_function_1(restore_database):
+
assert restore_database is None
@pytest.mark.skip(reason="function to be used in the test_scripts")
def createTA(driver, TA_name, emails, password):
@@ -25,34 +27,11 @@ def createTA(driver, TA_name, emails, password):
click_create = driver.find_element('name', 'create_btn')
click_create.click()
-def login_lecturer(drivers):
- # Open the website
- drivers.get("http://localhost/LRR/")
- drivers.maximize_window()
- username_input = drivers.find_element('name', "user")
-
- password_input = drivers.find_element('name', "password")
-
- login_button = drivers.find_element('id', "login_btn")
-
- # login as a Lecturer
- username_input.send_keys("admin@qq.com")
- password_input.send_keys("123")
- # Click the login button
- time.sleep(10)
- login_button.click()
- admin_tab = drivers.find_element('id', 'admin_tab')
- admin_tab.click()
-
- cte_instructor = drivers.find_element('id', 'tab_ins_accounts')
- cte_instructor.click()
- time.sleep(15)
-
-def test_createTA():
- driver_open = webdriver.Chrome()
+def test_createTA(url, driver, restore_database):
+ driver_open = driver
driver_open.maximize_window()
- login_lecturer(driver_open)
+ login(driver, url, "admin@qq.com", "123")
try:
fullname = "lanhuitest1"
email = "lanhuitest1@qq.com"
@@ -85,13 +64,13 @@ def test_createTA():
time.sleep(10)
login_button.click()
-
+ assert result == "Passed", f"Test Case 1 create TA passed"
time.sleep(5)
elif txt_alert.find("Email address ") == 0:
time.sleep(10)
driver_open.quit()
-
+ assert result == "Passed", f"Test Case 1 create TA failed"
else:
driver_open.quit()
@@ -99,11 +78,9 @@ def test_createTA():
finally:
driver_open.quit()
-
-
-def test_generate_password():
- driver_open = webdriver.Chrome()
- login_lecturer(driver_open)
+def test_generate_password(url, driver, restore_database):
+ driver_open = driver
+ login(driver, url, "admin@qq.com", "123")
try:
fullname = "lanhuitest2"
email = "lanhuitest2@qq.com"
@@ -145,13 +122,13 @@ def test_generate_password():
time.sleep(15)
login_button.click()
-
+ assert result == "Passed", f"Test Case 2 generate passsword passed"
time.sleep(5)
elif txt_alert.find("Email address ") == 0:
time.sleep(15)
driver_open.quit()
-
+ assert result == "Passed", f"Test Case 2 generate passsword failed"
else:
driver_open.quit()
@@ -160,9 +137,9 @@ def test_generate_password():
finally:
driver_open.quit()
-def test_existingTA():
- driver_open = webdriver.Chrome()
- login_lecturer(driver_open)
+def test_existingTA(url, driver, restore_database):
+ driver_open = driver
+ login(driver, url, "admin@qq.com", "123")
try:
# Use email nreyes@example.com as account name and new1452345678 as password.
fullname = "lanhuitest1"
@@ -180,11 +157,14 @@ def test_existingTA():
time.sleep(15)
if txt_alert.find("TA user created successfully") == 0:
+ assert result == "Passed", f"Test Case 2 existing account passed"
time.sleep(5)
elif txt_alert.find("Email address ") == 0:
time.sleep(15)
+
+ assert result == "Passed", f"Test Case 2 existing account failed"
driver_open.quit()
else:
@@ -194,3 +174,4 @@ def test_existingTA():
finally:
driver_open.quit()
+