diff --git a/.github/workflows/dataverse_jsf_tests.yml b/.github/workflows/dataverse_jsf_tests.yml
new file mode 100644
index 00000000000..77f41093fc5
--- /dev/null
+++ b/.github/workflows/dataverse_jsf_tests.yml
@@ -0,0 +1,264 @@
+name: Dataverse JSF Frontend Tests Workflow
+
+on:
+ workflow_dispatch:
+ push:
+ branches:
+ - develop
+ - master
+ paths-ignore:
+ - "doc/**"
+ - "**/*.md"
+ - ".github/ISSUE_TEMPLATE/**"
+ - ".github/*.md"
+ pull_request:
+ branches:
+ - develop
+ - master
+ paths-ignore:
+ - "doc/**"
+ - "**/*.md"
+ - ".github/ISSUE_TEMPLATE/**"
+ - ".github/*.md"
+
+concurrency:
+ group: "dataverse-jsf-frontend-tests-${{ github.ref }}"
+ cancel-in-progress: true
+
+jobs:
+ main-jsf-tests-workflow:
+ runs-on: ubuntu-latest
+ timeout-minutes: 90
+
+ defaults:
+ run:
+ shell: bash
+
+ permissions:
+ contents: read
+
+ steps:
+
+ # ---------------------------
+ # CHECKOUT
+ # ---------------------------
+ - name: Checkout repository
+ uses: actions/checkout@v7
+ # ---------------------------
+ # VERIFY DOCKER
+ # ---------------------------
+ - name: Verify Docker
+ run: |
+ set -euo pipefail
+ docker version
+
+ # ---------------------------
+ # SETUP JAVA + MAVEN
+ # ---------------------------
+ - name: Setup Java
+ uses: actions/setup-java@v5
+ with:
+ distribution: "temurin"
+ java-version: "21"
+ cache: "maven"
+
+ - name: Verify Maven
+ run: |
+ set -euo pipefail
+ mvn -version
+
+ # ---------------------------
+ # BUILD IMAGES (Dataverse-native)
+ # ---------------------------
+ - name: Build Dataverse containers via Maven
+ run: |
+ set -euo pipefail
+ mvn -Pct -T 1C package
+
+ # ---------------------------
+ # START CONTAINERS (BACKGROUND)
+ # ---------------------------
+ - name: Start Dataverse stack
+ run: |
+ set -euo pipefail
+ mvn -Pct docker:start \
+ -Ddataverse.feature.index-harvested-metadata-source=true \
+ -Ddataverse.oai.server.maxidentifiers=2 \
+ -Ddataverse.oai.server.maxrecords=2
+
+ # ---------------------------
+ # WAIT FOR API READINESS
+ # ---------------------------
+ - name: Wait for Dataverse API readiness
+ run: |
+ set -euo pipefail
+ URL="http://localhost:8080/api/info/version"
+ MAX_ATTEMPTS=10
+ SLEEP_TIME=15
+ echo "Waiting for Dataverse readiness..."
+ for attempt in $(seq 1 $MAX_ATTEMPTS); do
+ echo "Attempt $attempt..."
+ RESPONSE=$(curl -s --max-time 15 "$URL" || true)
+ STATUS=$(echo "$RESPONSE" | jq -r '.status' 2>/dev/null || echo "NOT_READY")
+ if [ "$STATUS" = "OK" ]; then
+ echo "Dataverse endpoint is READY."
+ echo "Waiting 30 more seconds for full readiness..."
+ sleep 30
+ echo "Response: $RESPONSE"
+ exit 0
+ fi
+ echo "Not ready. Sleeping ${SLEEP_TIME}s..."
+ sleep $SLEEP_TIME
+ if [ $SLEEP_TIME -lt 60 ]; then
+ SLEEP_TIME=$((SLEEP_TIME * 2))
+ if [ $SLEEP_TIME -gt 60 ]; then
+ SLEEP_TIME=60
+ fi
+ fi
+ done
+ echo "Dataverse failed to become ready."
+ docker ps
+ CONTAINERS="$(docker ps -aq)"
+ if [ -n "$CONTAINERS" ]; then
+ for cid in $CONTAINERS; do
+ echo "===== Logs for container $cid ====="
+ docker logs "$cid" || true
+ done
+ else
+ echo "No running containers to show logs for."
+ fi
+ exit 1
+
+ # ---------------------------
+ # MAP LOCALSTACK TO LOCALHOST
+ # ---------------------------
+ - name: Map localstack to localhost for Maven tests
+ run: echo "127.0.0.1 localstack" | sudo tee -a /etc/hosts
+
+ # ---------------------------
+ # CONFIGURE DATAVERSE FOR TESTS
+ # ---------------------------
+ - name: Configure Dataverse API Settings
+ run: |
+ set -euo pipefail
+
+ echo "Setting API Database Settings via internal container curl..."
+
+ declare -A settings=(
+ [":BuiltinUsersKey"]="burrito"
+ [":ProvCollectionEnabled"]="true"
+ [":AllowApiTokenLookupViaApi"]="true"
+ [":AllowSignUp"]="true"
+ )
+ for key in "${!settings[@]}"; do
+ echo "Setting $key..."
+ docker exec dev_dataverse curl --fail-with-body -sS -X PUT -d "${settings[$key]}" "http://localhost:8080/api/admin/settings/$key"
+ echo ""
+ done
+
+ # ---------------------------
+ # PRE-TEST INJECTIONS
+ # ---------------------------
+ - name: Put SUSHI config file in place
+ run: |
+ set -euo pipefail
+
+ SOURCE_FILE="${{ github.workspace }}/src/test/java/edu/harvard/iq/dataverse/makedatacount/sushi_sample_logs.json"
+
+ echo "Injecting local file into container..."
+ docker exec -i dev_dataverse sh -c "cat > /tmp/sushi_sample_logs.json" < "$SOURCE_FILE"
+
+ docker exec dev_dataverse ls -l /tmp/sushi_sample_logs.json
+ docker exec dev_dataverse head -n 5 /tmp/sushi_sample_logs.json
+
+ # ---------------------------
+ # SETUP NODE.JS
+ # ---------------------------
+ - name: Set up Node.js
+ uses: actions/setup-node@v6
+ with:
+ node-version: "24"
+
+ # ---------------------------
+ # CHECKOUT dataverse-jsf-tests
+ # ---------------------------
+ - name: Checkout dataverse-jsf-tests
+ uses: actions/checkout@v7
+ with:
+ repository: gdcc/dataverse-jsf-tests
+ path: dataverse-jsf-tests
+
+ - name: Install dataverse-jsf-tests dependencies
+ run: npm ci
+ working-directory: dataverse-jsf-tests
+
+ - name: Install Playwright browsers
+ run: npx playwright install --with-deps
+ working-directory: dataverse-jsf-tests
+
+ # ---------------------------
+ # RUN PLAYWRIGHT FRONTEND TESTS
+ # ---------------------------
+ - name: Run Playwright frontend tests
+ run: npx playwright test
+ working-directory: dataverse-jsf-tests
+ env:
+ BASE_URL: "http://localhost:8080"
+ LOGIN_ADAPTER: "builtin"
+ DV_USERNAME: "dataverseAdmin"
+ DV_PASSWORD: "admin1"
+ DV_FULL_NAME: "Dataverse Admin"
+ ROOT_DATAVERSE: "/dataverse/root"
+ SKIP_PREFLIGHT: "true"
+ DOTENV_CONFIG_QUIET: "true"
+
+ # ---------------------------
+ # UPLOAD PLAYWRIGHT REPORT
+ # ---------------------------
+ - name: Upload Playwright report
+ if: always()
+ uses: actions/upload-artifact@v7
+ with:
+ name: playwright-report
+ path: dataverse-jsf-tests/playwright-report/
+ retention-days: 14
+
+ # ---------------------------
+ # COLLECT DOCKER LOGS (ALWAYS)
+ # ---------------------------
+ - name: Collect Docker logs (mapped)
+ if: always()
+ run: |
+ mkdir -p docker-logs
+ echo "Gathering container metadata..."
+ docker ps -a --format '{{.Names}}|{{.Image}}|{{.Status}}' > docker-logs/container-summary.txt
+ while IFS='|' read -r name image status; do
+ label="$name"
+ case "$name" in
+ *dataverse*) label="dataverse-app" ;;
+ *postgres*) label="postgres-db" ;;
+ *solr*) label="solr-index" ;;
+ *localstack*)label="localstack-s3" ;;
+ esac
+ echo "Collecting logs for $name ($label)"
+ {
+ echo "===== CONTAINER: $name ====="
+ echo "Label: $label"
+ echo "Image: $image"
+ echo "Status: $status"
+ echo ""
+ echo "===== LOGS ====="
+ docker logs --timestamps "$name" 2>&1 || true
+ } > "docker-logs/${label}__${name}.log"
+ done < docker-logs/container-summary.txt
+
+ # ---------------------------
+ # UPLOAD DOCKER LOGS (ALWAYS)
+ # ---------------------------
+ - name: Upload Docker logs
+ if: always()
+ uses: actions/upload-artifact@v7
+ with:
+ name: docker-logs
+ path: docker-logs/
+ retention-days: 14
diff --git a/doc/sphinx-guides/source/developers/testing.rst b/doc/sphinx-guides/source/developers/testing.rst
index b85a83a0f92..4fc67583723 100755
--- a/doc/sphinx-guides/source/developers/testing.rst
+++ b/doc/sphinx-guides/source/developers/testing.rst
@@ -496,6 +496,19 @@ Developers who contribute front-end UI code are responsible for understanding th
There are browser developer tools such as the `Wave toolbar `__ by WebAIM (available for Chrome, Firefox) and the `Siteimprove Accessibility Checker `__ (available for Chrome, Firefox) that will generate reports for a single page. It is required that developers utilize these tools to catch any accessibility issues with pages or features that are being added to the application UI.
+Browser-Based Testing
+---------------------
+
+Browser-Based Testing of JSF
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The JSF frontend is being tested with Playwright via a GitHub Action that runs a test suite from https://github.com/gdcc/dataverse-jsf-tests (see https://github.com/IQSS/dataverse/pull/12526).
+
+Browser-Based Testing of the SPA
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+https://github.com/IQSS/dataverse-frontend uses Cypress.
+
Future Work
-----------
@@ -518,11 +531,6 @@ Future Work on Integration Tests
- Consistent logging of API Tests. Show test name at the beginning and end and status codes returned.
- expected passing and known/expected failing integration tests: https://github.com/IQSS/dataverse/issues/4438
-Browser-Based Testing
-~~~~~~~~~~~~~~~~~~~~~
-
-- Revisit Selenium/Open Sauce: https://github.com/IQSS/dataverse/commit/8a26404 and https://saucelabs.com/u/esodvn and https://saucelabs.com/u/wdjs and http://sauceio.com/index.php/2013/05/a-browser-matrix-widget-for-the-open-source-community/
-
Installation Testing
~~~~~~~~~~~~~~~~~~~~
diff --git a/tests/access_dvn.py b/tests/access_dvn.py
deleted file mode 100755
index 99e475bea58..00000000000
--- a/tests/access_dvn.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# This is a test to access Dataverse homepage.
-import unittest
-from selenium import webdriver
-
-
-class AccessDVN(unittest.TestCase):
-
- def setUp(self):
- desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
- desired_capabilities['version'] = '24'
- desired_capabilities['platform'] = 'Linux'
- desired_capabilities['name'] = 'Testing Selenium 2 in Python at Sauce'
-
- self.driver = webdriver.Remote(
- desired_capabilities=desired_capabilities,
- command_executor="http://esodvn:325caef9-81dd-47a5-8b74-433057ce888f@ondemand.saucelabs.com:80/wd/hub"
- )
- self.driver.implicitly_wait(30)
-
- def test_sauce(self):
- self.driver.get('http://dvn-build.hmdc.harvard.edu')
-
-
- def tearDown(self):
- print("Link to your job: https://saucelabs.com/jobs/%s" % self.driver.session_id)
- self.driver.quit()
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/config.py b/tests/config.py
deleted file mode 100644
index f77499163d8..00000000000
--- a/tests/config.py
+++ /dev/null
@@ -1,8 +0,0 @@
-#local = False
-local = True
-testUser = "tester"
-rootDv = "root"
-#accessURL = "http://140.247.116.223:8080/"
-accessURL = "http://localhost:8080/"
-#accessURL = "http://dvn-build.hmdc.harvard.edu"
-
diff --git a/tests/create_account.py b/tests/create_account.py
deleted file mode 100644
index e7eeb219432..00000000000
--- a/tests/create_account.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# This is a test to create an account.
-import unittest, time
-from selenium import webdriver
-
-
-class CreateAccountSuite(unittest.TestCase):
-
- def setUp(self):
- desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
- desired_capabilities['version'] = '24'
- desired_capabilities['platform'] = 'Linux'
- desired_capabilities['name'] = 'Create Account'
-
- self.driver = webdriver.Remote(
- desired_capabilities=desired_capabilities,
- command_executor="http://esodvn:325caef9-81dd-47a5-8b74-433057ce888f@ondemand.saucelabs.com:80/wd/hub"
- )
- self.driver.implicitly_wait(30)
-
- def test_sauce(self):
- driver=self.driver
- driver.get('http://dvn-build.hmdc.harvard.edu/dataverseuser.xhtml')
- driver.find_element_by_id("dataverseUserForm:editAccountButton_button").click()
- driver.find_element_by_link_text("Create Account").click()
- driver.find_element_by_id("dataverseUserForm:userName").click()
- driver.find_element_by_id("dataverseUserForm:userName").clear()
- driver.find_element_by_id("dataverseUserForm:userName").send_keys("user1")
- driver.find_element_by_id("dataverseUserForm:inputPassword").click()
- driver.find_element_by_id("dataverseUserForm:inputPassword").clear()
- driver.find_element_by_id("dataverseUserForm:inputPassword").send_keys("u")
- driver.find_element_by_id("dataverseUserForm:retypePassword").click()
- driver.find_element_by_id("dataverseUserForm:retypePassword").clear()
- driver.find_element_by_id("dataverseUserForm:retypePassword").send_keys("u")
- driver.find_element_by_id("dataverseUserForm:firstName").click()
- driver.find_element_by_id("dataverseUserForm:firstName").clear()
- driver.find_element_by_id("dataverseUserForm:firstName").send_keys("user")
- driver.find_element_by_id("dataverseUserForm:lastName").click()
- driver.find_element_by_id("dataverseUserForm:lastName").clear()
- driver.find_element_by_id("dataverseUserForm:lastName").send_keys("zero")
- driver.find_element_by_id("dataverseUserForm:email").click()
- driver.find_element_by_id("dataverseUserForm:email").clear()
- driver.find_element_by_id("dataverseUserForm:email").send_keys("u@u.edu")
- driver.find_element_by_id("dataverseUserForm:institution").click()
- driver.find_element_by_id("dataverseUserForm:institution").clear()
- driver.find_element_by_id("dataverseUserForm:institution").send_keys("IQSS")
- driver.find_element_by_id("dataverseUserForm:j_idt45_focus").click()
- driver.find_element_by_id("dataverseUserForm:j_idt45_focus").send_keys("\\9")
- driver.find_element_by_css_selector("span.ui-icon.ui-icon-triangle-1-s").click()
- driver.find_element_by_xpath("//div[@class='ui-selectonemenu-items-wrapper']//li[.='Student']").click()
- driver.find_element_by_id("dataverseUserForm:phone").click()
- driver.find_element_by_id("dataverseUserForm:phone").click()
- driver.find_element_by_id("dataverseUserForm:phone").clear()
- driver.find_element_by_id("dataverseUserForm:phone").send_keys("888-888-8888")
- driver.find_element_by_id("dataverseUserForm:save").click()
-
-
- def tearDown(self):
- print("Link to your job: https://saucelabs.com/jobs/%s" % self.driver.session_id)
- self.driver.quit()
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/cypress.json b/tests/cypress.json
deleted file mode 100644
index d7b657c4c26..00000000000
--- a/tests/cypress.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "baseUrl": "http://localhost:8084",
- "projectId": "ufkudc"
-}
diff --git a/tests/cypress/fixtures/example.json b/tests/cypress/fixtures/example.json
deleted file mode 100644
index 02e4254378e..00000000000
--- a/tests/cypress/fixtures/example.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Using fixtures to represent data",
- "email": "hello@cypress.io",
- "body": "Fixtures are a great way to mock data for responses to routes"
-}
diff --git a/tests/cypress/integration/test_dv.spec.js b/tests/cypress/integration/test_dv.spec.js
deleted file mode 100644
index dba70db096f..00000000000
--- a/tests/cypress/integration/test_dv.spec.js
+++ /dev/null
@@ -1,75 +0,0 @@
-import { login } from '../util'
-
-describe('Dataverse', function() {
- beforeEach(function() {
- login(cy)
- })
-
- it('can be created with minimal customization', function() {
- cy.visit('/dataverse.xhtml?ownerId=1')
-
- // setup aliases for used fields
- cy.get('input[id="dataverseForm:name"]').as('name')
- cy.get('input[id="dataverseForm:identifier"]').as('identifier')
- cy.get('select[id="dataverseForm:dataverseCategory"]').as(
- 'categorySelection'
- )
- cy.get('input[id="dataverseForm:affiliation"]').as('affiliation')
- cy.get('textarea[id="dataverseForm:description"]').as('description')
- cy.get('input[id="dataverseForm:metadataRoot"]').as('metadataRoot')
- cy.get('input[id="dataverseForm:facetsRoot"]').as('facetsRoot')
-
- // assert that there are no alerts in the initial state
- cy.get('.alert:not(.alert-success)').should('not.exist')
- cy.get('.ui-message-error-detail').should('not.exist')
-
- // assert that the initial values have been set correctly
- cy.get('@name').should('have.value', 'Dataverse Admin Dataverse')
- cy.get('@identifier').should('be.empty')
- cy.get('@categorySelection').should('have.value', '')
- cy.get('@affiliation').should('have.value', 'Dataverse.org')
- cy.get('@description').should('be.empty')
- cy.get('@metadataRoot').should('be.checked')
- cy.get('@facetsRoot').should('be.checked')
-
- // try to create a dataverse
- cy.contains('Create Dataverse').click()
-
- // expect validation to fail for some key fields
- cy.get('.alert').should('exist')
- cy.get('.ui-message-error-detail').should('have.length', 2)
-
- // fill in the remaining forms
- cy.get('@identifier').type('testDv')
- cy.get('@categorySelection').select('DEPARTMENT')
-
- // create a dataverse
- cy.contains('Create Dataverse').click()
-
- // ensure that we have been redirected to the correct dataverse page
- cy.url().should('contain', '/dataverse/testDv')
- cy.get('.dataverseHeaderCell').should('contain', 'Unpublished')
- })
-
- it('allows datasets to be created', function() {
- cy.visit('/dataverse/testDv')
-
- // click through to the new dataset page
- // TODO: this should all be tested in a different spec
- cy.contains('Add Data').click()
- cy.contains('New Dataset').click()
-
- // fill in the necessary fields for the simplest new dataset
- cy.get('.panel-body').within(() => {
- cy.get('> :nth-child(1) input[type="text"]').type('Some dataset')
- cy.get('> :nth-child(4) textarea').type('It is about some data')
- cy.get('> :nth-child(5) tr:nth-child(5) div.ui-chkbox-box').click()
- })
-
- // save the new dataset
- cy.contains('Save Dataset').click()
-
- // ensure that we have been redirected to the correct dataverse page
- cy.url().should('contain', '/dataset.xhtml')
- })
-})
diff --git a/tests/cypress/integration/test_dv_user.spec.js b/tests/cypress/integration/test_dv_user.spec.js
deleted file mode 100644
index c552710bbe4..00000000000
--- a/tests/cypress/integration/test_dv_user.spec.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import { login } from '../util'
-
-describe('Dataverse User', function() {
- beforeEach(function() {
- login(cy)
- })
-
- it('allows the user to read and remove notifications', function() {
- cy.visit('/dataverseuser.xhtml?selectTab=notifications')
-
- // expect there to be one notification
- cy.get('.notification-item').should('have.length.of', 1)
-
- // remove the notification
- cy.get('.notification-item')
- .eq(0)
- .find('.notification-item-cell')
- .eq(1)
- .click()
-
- // expect there to be no more notifications
- cy.get('.notification-item').should('have.length.of', 0)
- })
-
- it('allows looking up account information', function() {
- cy.visit('/dataverseuser.xhtml?selectTab=accountInfo')
-
- cy.get('.form-control-static')
- .eq(0)
- .should('contain', 'dataverseAdmin')
-
- cy.get('.form-control-static')
- .eq(1)
- .should('contain', 'Dataverse')
-
- cy.get('.form-control-static')
- .eq(2)
- .should('contain', 'Admin')
-
- cy.get('.form-control-static')
- .eq(3)
- .should('contain', 'dataverse@mailinator.com')
-
- cy.get('.form-control-static')
- .eq(4)
- .should('contain', 'Not Verified')
-
- cy.get('.form-control-static')
- .eq(5)
- .should('contain', 'Dataverse.org')
-
- cy.get('.form-control-static')
- .eq(6)
- .should('contain', 'Admin')
- })
-
- it('enables recreation of the API token', function() {
- const tokenTabId =
- 'div[id="dataverseUserForm:dataRelatedToMeView:apiTokenTab"]'
- cy.visit('/dataverseuser.xhtml?selectTab=apiTokenTab')
-
- cy.get(`${tokenTabId} pre code`)
- .should('not.be.empty')
- .then(oldToken => {
- // click the token recreation button
- cy.get(`${tokenTabId} button[type=submit]`).click()
-
- cy.get(`${tokenTabId} pre code`)
- .should('not.be.empty')
- .then(newToken => {
- // assert that the new token is different from the old one
- expect(newToken[0].textContent).to.not.eq(oldToken[0].textContent)
- })
- })
- })
-})
diff --git a/tests/cypress/integration/test_login.spec.js b/tests/cypress/integration/test_login.spec.js
deleted file mode 100644
index 4741d57dd5b..00000000000
--- a/tests/cypress/integration/test_login.spec.js
+++ /dev/null
@@ -1,61 +0,0 @@
-describe('Log In', function() {
- beforeEach(function() {
- // visit the log in page
- cy.visit('/loginpage.xhtml')
-
- // should create a session cookie
- cy.getCookie('JSESSIONID').should('exist')
-
- // fill out the login form inputs
- cy.get('input[name="loginForm:credentialsContainer:0:credValue"]').type(
- 'dataverseAdmin'
- )
- cy.get('input[name="loginForm:credentialsContainer:1:sCredValue"]').type(
- 'admin1'
- )
- })
-
- it('enables logging in with the enter key', function() {
- // press enter
- cy.get('input[name="loginForm:credentialsContainer:1:sCredValue"]').type(
- '{enter}'
- )
-
- // should redirect to the dataverse root page
- cy.url().should('include', '/dataverse/root')
-
- // should show the user name in the navbar
- cy.get('span[id=userDisplayInfoTitle]').should('contain', 'Dataverse Admin')
- })
-
- it('enables logging in by clicking the submit button', function() {
- // click the login button
- cy.get('button[name="loginForm:login').click()
-
- // should redirect to the dataverse root page
- cy.url().should('include', '/dataverse/root')
-
- // should show the user name in the navbar
- cy.get('span[id=userDisplayInfoTitle]').should('contain', 'Dataverse Admin')
- })
-
- it('prevents an invalid login', function() {
- // add some additional characters to the valid credentials
- cy.get('input[name="loginForm:credentialsContainer:0:credValue"]').type(
- 'Invalid'
- )
- cy.get('input[name="loginForm:credentialsContainer:1:sCredValue"]').type(
- 'Invalid'
- )
- // click the login button
- cy.get('button[name="loginForm:login').click()
-
- cy.url().should('contain', '/loginpage.xhtml')
- cy.get('.alert').should('contain', 'Error')
- })
-
- it('allows jumping to the password reset page', function() {
- cy.get('a[href="passwordreset.xhtml"]').click()
- cy.url().should('contain', '/passwordreset.xhtml')
- })
-})
diff --git a/tests/cypress/integration/test_password_reset.spec.js b/tests/cypress/integration/test_password_reset.spec.js
deleted file mode 100644
index a60c181978d..00000000000
--- a/tests/cypress/integration/test_password_reset.spec.js
+++ /dev/null
@@ -1,21 +0,0 @@
-describe('Password Reset', function() {
- it('allows a valid user to request its password', function() {
- cy.visit('/passwordreset.xhtml')
-
- cy.get('input[name="passwordReset:email"]').type(
- 'dataverse@mailinator.com{enter}'
- )
-
- cy.get('.alert').should('contain', 'Password Reset Initiated')
- })
-
- it('does not treat invalid users differently', function() {
- cy.visit('/passwordreset.xhtml')
-
- cy.get('input[name="passwordReset:email"]').type(
- 'invalid_user@gmail.com{enter}'
- )
-
- cy.get('.alert').should('contain', 'Password Reset Initiated')
- })
-})
diff --git a/tests/cypress/plugins/index.js b/tests/cypress/plugins/index.js
deleted file mode 100644
index 95ee42a7b1c..00000000000
--- a/tests/cypress/plugins/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-
-// ***********************************************************
-// This example plugins/index.js can be used to load plugins
-//
-// You can change the location of this file or turn off loading
-// the plugins file with the 'pluginsFile' configuration option.
-//
-// You can read more here:
-// https://on.cypress.io/plugins-guide
-// ***********************************************************
-
-// This function is called when a project is opened or re-opened (e.g. due to
-// the project's config changing)
-
-module.exports = (on, config) => {
- // `on` is used to hook into various events Cypress emits
- // `config` is the resolved Cypress config
-}
diff --git a/tests/cypress/support/commands.js b/tests/cypress/support/commands.js
deleted file mode 100644
index c1f5a772e2b..00000000000
--- a/tests/cypress/support/commands.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// ***********************************************
-// This example commands.js shows you how to
-// create various custom commands and overwrite
-// existing commands.
-//
-// For more comprehensive examples of custom
-// commands please read more here:
-// https://on.cypress.io/custom-commands
-// ***********************************************
-//
-//
-// -- This is a parent command --
-// Cypress.Commands.add("login", (email, password) => { ... })
-//
-//
-// -- This is a child command --
-// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
-//
-//
-// -- This is a dual command --
-// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
-//
-//
-// -- This is will overwrite an existing command --
-// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
diff --git a/tests/cypress/support/index.js b/tests/cypress/support/index.js
deleted file mode 100644
index d68db96df26..00000000000
--- a/tests/cypress/support/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// ***********************************************************
-// This example support/index.js is processed and
-// loaded automatically before your test files.
-//
-// This is a great place to put global configuration and
-// behavior that modifies Cypress.
-//
-// You can change the location of this file or turn off
-// automatically serving support files with the
-// 'supportFile' configuration option.
-//
-// You can read more here:
-// https://on.cypress.io/configuration
-// ***********************************************************
-
-// Import commands.js using ES2015 syntax:
-import './commands'
-
-// Alternatively you can use CommonJS syntax:
-// require('./commands')
diff --git a/tests/cypress/util.js b/tests/cypress/util.js
deleted file mode 100644
index a824dde7496..00000000000
--- a/tests/cypress/util.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Function that performs a programmatic login
- * @param {Cypress} cy
- */
-export function login(cy, cb) {
- // need to visit the login page to get the CSRF token
- cy.visit('/loginpage.xhtml')
-
- // a session needs to have been setup
- cy.getCookie('JSESSIONID').should('exist')
-
- // extract the CSRF token from the view state
- cy.get('#loginForm input[name="javax.faces.ViewState"]').then(viewState => {
- cy.request({
- method: 'POST',
- url: 'http://localhost:8084/loginpage.xhtml',
- form: true,
- body: {
- 'javax.faces.partial.ajax': true,
- 'javax.faces.source': 'loginForm:login',
- 'javax.faces.partial.execute': '@all',
- 'javax.faces.partial.render': '@all',
- 'loginForm:login': 'loginForm:login',
- loginForm: 'loginForm',
- 'loginForm:credentialsContainer:0:credValue': 'dataverseAdmin',
- 'loginForm:credentialsContainer:1:sCredValue': 'admin1',
- 'javax.faces.ViewState': viewState[0].value,
- },
- }).then(cb ? cb : () => null)
- })
-}
diff --git a/tests/package.json b/tests/package.json
deleted file mode 100644
index 170f3d99fdf..00000000000
--- a/tests/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "dataverse-tests",
- "version": "0.0.1",
- "scripts": {
- "cypress:dev": "cypress open",
- "cypress:ci": "cypress run"
- },
- "devDependencies": {
- "cypress": "3.3.1"
- }
-}
diff --git a/tests/test_access.py b/tests/test_access.py
deleted file mode 100644
index 53dd333cccd..00000000000
--- a/tests/test_access.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from selenium import webdriver
-import time, unittest, config
-
-def is_alert_present(wd):
- try:
- wd.switch_to_alert().text
- return True
- except:
- return False
-
-class test_access(unittest.TestCase):
- def setUp(self):
- if (config.local):
- self.wd = webdriver.Firefox()
- else:
- desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
- desired_capabilities['version'] = '24'
- desired_capabilities['platform'] = 'Linux'
- desired_capabilities['name'] = 'test_access'
- self.wd = webdriver.Remote(
- desired_capabilities=desired_capabilities,
- command_executor="http://esodvn:325caef9-81dd-47a5-8b74-433057ce888f@ondemand.saucelabs.com:80/wd/hub"
- )
-
- self.wd.implicitly_wait(60)
-
-
- def test_test_access(self):
- success = True
- msg = "Success"
- wd = self.wd
- wd.get(config.accessURL)
- if not ("Log In" in wd.find_element_by_tag_name("html").text):
- success = False
- print("Could not verify page text.")
- self.assertTrue(success)
-
- def tearDown(self):
- if not (config.local):
- print("Link to your job: https://saucelabs.com/jobs/%s" % self.wd.session_id)
- self.wd.quit()
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/test_account.py b/tests/test_account.py
deleted file mode 100644
index 9347c756930..00000000000
--- a/tests/test_account.py
+++ /dev/null
@@ -1,68 +0,0 @@
-from selenium import webdriver
-import time, unittest, config
-
-def is_alert_present(wd):
- try:
- wd.switch_to_alert().text
- return True
- except:
- return False
-
-class test_account(unittest.TestCase):
- def setUp(self):
- if (config.local):
- self.wd = webdriver.Firefox()
- else:
- desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
- desired_capabilities['version'] = '24'
- desired_capabilities['platform'] = 'Linux'
- desired_capabilities['name'] = 'test_access'
- self.wd = webdriver.Remote(
- desired_capabilities=desired_capabilities,
- command_executor="http://esodvn:325caef9-81dd-47a5-8b74-433057ce888f@ondemand.saucelabs.com:80/wd/hub"
- )
-
- self.wd.implicitly_wait(60)
-
- def test_test_account(self):
- success = True
- varName = "Tester", time.time()
- wd = self.wd
- wd.get(config.accessURL)
- wd.find_element_by_link_text("Create Account").click()
- wd.find_element_by_id("dataverseUserForm:userName").click()
- wd.find_element_by_id("dataverseUserForm:userName").clear()
- wd.find_element_by_id("dataverseUserForm:userName").send_keys("varName")
- wd.find_element_by_id("dataverseUserForm:inputPassword").click()
- wd.find_element_by_id("dataverseUserForm:inputPassword").clear()
- wd.find_element_by_id("dataverseUserForm:inputPassword").send_keys("tester")
- wd.find_element_by_id("dataverseUserForm:retypePassword").click()
- wd.find_element_by_id("dataverseUserForm:retypePassword").clear()
- wd.find_element_by_id("dataverseUserForm:retypePassword").send_keys("tester")
- wd.find_element_by_id("dataverseUserForm:firstName").click()
- wd.find_element_by_id("dataverseUserForm:firstName").clear()
- wd.find_element_by_id("dataverseUserForm:firstName").send_keys("test")
- wd.find_element_by_id("dataverseUserForm:lastName").click()
- wd.find_element_by_id("dataverseUserForm:lastName").clear()
- wd.find_element_by_id("dataverseUserForm:lastName").send_keys("user")
- wd.find_element_by_id("dataverseUserForm:email").click()
- wd.find_element_by_id("dataverseUserForm:email").clear()
- wd.find_element_by_id("dataverseUserForm:email").send_keys("kcondon@hmdc.harvard.edu")
- wd.find_element_by_id("dataverseUserForm:institution").click()
- wd.find_element_by_id("dataverseUserForm:institution").clear()
- wd.find_element_by_id("dataverseUserForm:institution").send_keys("IQSS")
- wd.find_element_by_xpath("//div[@id='dataverseUserForm:j_idt45']/div[3]").click()
- wd.find_element_by_xpath("//div[@class='ui-selectonemenu-items-wrapper']//li[.='Staff']").click()
- wd.find_element_by_id("dataverseUserForm:phone").click()
- wd.find_element_by_id("dataverseUserForm:phone").clear()
- wd.find_element_by_id("dataverseUserForm:phone").send_keys("1-222-333-4444")
- wd.find_element_by_id("dataverseUserForm:save").click()
-
-
- def tearDown(self):
- if not (config.local):
- print("Link to your job: https://saucelabs.com/jobs/%s" % self.wd.session_id)
- self.wd.quit()
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/test_create_test_account.py b/tests/test_create_test_account.py
deleted file mode 100644
index 06491dc0c28..00000000000
--- a/tests/test_create_test_account.py
+++ /dev/null
@@ -1,74 +0,0 @@
-from selenium import webdriver
-import time, unittest, config
-
-def is_alert_present(wd):
- try:
- wd.switch_to_alert().text
- return True
- except:
- return False
-
-class test_create_test_account(unittest.TestCase):
- def setUp(self):
- if (config.local):
- self.wd = webdriver.Firefox()
- else:
- desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
- desired_capabilities['version'] = '24'
- desired_capabilities['platform'] = 'Linux'
- desired_capabilities['name'] = 'test_access'
- self.wd = webdriver.Remote(
- desired_capabilities=desired_capabilities,
- command_executor="http://esodvn:325caef9-81dd-47a5-8b74-433057ce888f@ondemand.saucelabs.com:80/wd/hub"
- )
-
- self.wd.implicitly_wait(60)
-
- def test_test_create_test_account(self):
- success = True
- wd = self.wd
- wd.get(config.accessURL)
- wd.find_element_by_link_text("Create Account").click()
- wd.find_element_by_id("dataverseUserForm:userName").click()
- wd.find_element_by_id("dataverseUserForm:userName").clear()
- wd.find_element_by_id("dataverseUserForm:userName").send_keys("tester")
- wd.find_element_by_id("dataverseUserForm:inputPassword").click()
- wd.find_element_by_id("dataverseUserForm:inputPassword").clear()
- wd.find_element_by_id("dataverseUserForm:inputPassword").send_keys("tester")
- wd.find_element_by_id("dataverseUserForm:retypePassword").click()
- wd.find_element_by_id("dataverseUserForm:retypePassword").clear()
- wd.find_element_by_id("dataverseUserForm:retypePassword").send_keys("tester")
- wd.find_element_by_id("dataverseUserForm:firstName").click()
- wd.find_element_by_id("dataverseUserForm:firstName").clear()
- wd.find_element_by_id("dataverseUserForm:firstName").send_keys("test")
- wd.find_element_by_id("dataverseUserForm:lastName").click()
- wd.find_element_by_id("dataverseUserForm:lastName").clear()
- wd.find_element_by_id("dataverseUserForm:lastName").send_keys("user")
- wd.find_element_by_id("dataverseUserForm:email").click()
- wd.find_element_by_id("dataverseUserForm:email").clear()
- wd.find_element_by_id("dataverseUserForm:email").send_keys("kcondon@hmdc.harvard.edu")
- wd.find_element_by_id("dataverseUserForm:institution").click()
- wd.find_element_by_id("dataverseUserForm:institution").clear()
- wd.find_element_by_id("dataverseUserForm:institution").send_keys("IQSS")
- wd.find_element_by_xpath("//div[@id='dataverseUserForm:j_idt45']/div[3]").click()
- wd.find_element_by_xpath("//div[@class='ui-selectonemenu-items-wrapper']//li[.='Staff']").click()
- wd.find_element_by_id("dataverseUserForm:phone").click()
- wd.find_element_by_id("dataverseUserForm:phone").clear()
- wd.find_element_by_id("dataverseUserForm:phone").send_keys("1-222-333-4444")
- wd.find_element_by_id("dataverseUserForm:save").click()
- time.sleep(1)
- if ("This Username is already taken." in wd.find_element_by_tag_name("html").text):
- print("Username exists. Exiting.")
- return
- if not ("Log Out" in wd.find_element_by_tag_name("html").text):
- success = false
- print("User was not logged in after create account.")
- self.assertTrue(success)
-
- def tearDown(self):
- if not (config.local):
- print("Link to your job: https://saucelabs.com/jobs/%s" % self.wd.session_id)
- self.wd.quit()
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/test_dataset.py b/tests/test_dataset.py
deleted file mode 100644
index 264124abef7..00000000000
--- a/tests/test_dataset.py
+++ /dev/null
@@ -1,69 +0,0 @@
-from selenium import webdriver
-import time, unittest, config
-
-def is_alert_present(wd):
- try:
- wd.switch_to_alert().text
- return True
- except:
- return False
-
-class test_dataset(unittest.TestCase):
- def setUp(self):
- if (config.local):
- self.wd = webdriver.Firefox()
- else:
- desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
- desired_capabilities['version'] = '24'
- desired_capabilities['platform'] = 'Linux'
- desired_capabilities['name'] = 'test_access'
- self.wd = webdriver.Remote(
- desired_capabilities=desired_capabilities,
- command_executor="http://esodvn:325caef9-81dd-47a5-8b74-433057ce888f@ondemand.saucelabs.com:80/wd/hub"
- )
-
- self.wd.implicitly_wait(60)
-
- def test_test_dataset(self):
- success = True
- wd = self.wd
- wd.get(config.accessURL)
- wd.find_element_by_link_text("Log In").click()
- time.sleep(1)
- wd.find_element_by_id("loginForm:userName").click()
- wd.find_element_by_id("loginForm:userName").clear()
- wd.find_element_by_id("loginForm:userName").send_keys("tester")
- wd.find_element_by_id("loginForm:password").click()
- wd.find_element_by_id("loginForm:password").clear()
- wd.find_element_by_id("loginForm:password").send_keys("tester")
- wd.find_element_by_id("loginForm:login").click()
- time.sleep(1)
- wd.find_element_by_id("shareForm:shareData_button").click()
- wd.find_element_by_link_text("Add Dataset").click()
- wd.find_element_by_id("datasetForm:title").click()
- wd.find_element_by_id("datasetForm:title").clear()
- wd.find_element_by_id("datasetForm:title").send_keys("test dataset")
- wd.find_element_by_css_selector("td.leftClass").click()
- wd.find_element_by_id("datasetForm:author").click()
- wd.find_element_by_id("datasetForm:author").clear()
- wd.find_element_by_id("datasetForm:author").send_keys("tester")
- wd.find_element_by_id("datasetForm:date").click()
- wd.find_element_by_id("datasetForm:date").clear()
- wd.find_element_by_id("datasetForm:date").send_keys("2013")
- wd.find_element_by_id("datasetForm:distributor").click()
- wd.find_element_by_id("datasetForm:distributor").clear()
- wd.find_element_by_id("datasetForm:distributor").send_keys("test inc")
- wd.find_element_by_id("datasetForm:description").click()
- wd.find_element_by_id("datasetForm:description").clear()
- wd.find_element_by_id("datasetForm:description").send_keys("This is a test")
- wd.find_element_by_id("datasetForm:save").click()
- wd.find_element_by_link_text("Log Out").click()
- self.assertTrue(success)
-
- def tearDown(self):
- if not (config.local):
- print("Link to your job: https://saucelabs.com/jobs/%s" % self.wd.session_id)
- self.wd.quit()
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/test_dataset_fileupload.py b/tests/test_dataset_fileupload.py
deleted file mode 100644
index 6edad93ef33..00000000000
--- a/tests/test_dataset_fileupload.py
+++ /dev/null
@@ -1,85 +0,0 @@
-from selenium import webdriver
-import time, unittest, config
-
-def is_alert_present(wd):
- try:
- wd.switch_to_alert().text
- return True
- except:
- return False
-
-class test_dataset_fileupload(unittest.TestCase):
- def setUp(self):
- if (config.local):
- self.wd = webdriver.Firefox()
- else:
- desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
- desired_capabilities['version'] = '24'
- desired_capabilities['platform'] = 'Linux'
- desired_capabilities['name'] = 'test_access'
- self.wd = webdriver.Remote(
- desired_capabilities=desired_capabilities,
- command_executor="http://esodvn:325caef9-81dd-47a5-8b74-433057ce888f@ondemand.saucelabs.com:80/wd/hub"
- )
-
- self.wd.implicitly_wait(60)
-
- def test_test_dataset_fileupload(self):
- success = True
- wd = self.wd
- wd.get(config.accessURL)
- # Log in as test user
- wd.find_element_by_link_text("Log In").click()
- time.sleep(1)
- wd.find_element_by_id("loginForm:userName").click()
- wd.find_element_by_id("loginForm:userName").clear()
- wd.find_element_by_id("loginForm:userName").send_keys("tester")
- wd.find_element_by_id("loginForm:password").click()
- wd.find_element_by_id("loginForm:password").clear()
- wd.find_element_by_id("loginForm:password").send_keys("tester")
- wd.find_element_by_id("loginForm:login").click()
- time.sleep(1)
- # Choose to upload dataset
- wd.find_element_by_id("shareForm:shareData_button").click()
- wd.find_element_by_link_text("Add Dataset").click()
- time.sleep(1)
- # Enter dataset info
- wd.find_element_by_id("datasetForm:title").click()
- wd.find_element_by_id("datasetForm:title").clear()
- wd.find_element_by_id("datasetForm:title").send_keys("Test Drag and Drop")
- wd.find_element_by_id("datasetForm:author").click()
- wd.find_element_by_id("datasetForm:author").clear()
- wd.find_element_by_id("datasetForm:author").send_keys("tester")
- wd.find_element_by_id("datasetForm:date").click()
- wd.find_element_by_id("datasetForm:date").clear()
- wd.find_element_by_id("datasetForm:date").send_keys("2013")
- wd.find_element_by_id("datasetForm:distributor").click()
- wd.find_element_by_id("datasetForm:distributor").clear()
- wd.find_element_by_id("datasetForm:distributor").send_keys("test")
- wd.find_element_by_id("datasetForm:description").click()
- wd.find_element_by_id("datasetForm:description").clear()
- wd.find_element_by_id("datasetForm:description").send_keys("This is a test.")
- # Upload file
- wd.find_element_by_id("datasetForm:tabView:fileUpload_input").send_keys("/Users/kcondon/Downloads/50by1000.dta")
- time.sleep(3)
- if wd.find_element_by_id("datasetForm:tabView:filesTable:0:fileName").get_attribute("value") != "50by1000.dta":
- success = False
- print("Could not find file name in upload table.")
- wd.find_element_by_id("datasetForm:save").click()
- time.sleep(3)
- if not ("Test Drag and Drop" in wd.find_element_by_tag_name("html").text):
- success = False
- print("Could not find dataset title on page.")
- if not ("tester, \"Test Drag and Drop\", 2013, test, http://dx.doi.org/10.1234/dataverse/" in wd.find_element_by_tag_name("html").text):
- success = False
- print("Could not verify data citation.")
- wd.find_element_by_link_text("Log Out").click()
- self.assertTrue(success)
-
- def tearDown(self):
- if not (config.local):
- print("Link to your job: https://saucelabs.com/jobs/%s" % self.wd.session_id)
- self.wd.quit()
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/test_dataverse.py b/tests/test_dataverse.py
deleted file mode 100644
index 5de4e7d0e41..00000000000
--- a/tests/test_dataverse.py
+++ /dev/null
@@ -1,71 +0,0 @@
-from selenium import webdriver
-import time, unittest, config
-
-def is_alert_present(wd):
- try:
- wd.switch_to_alert().text
- return True
- except:
- return False
-
-class test_dataverse(unittest.TestCase):
- def setUp(self):
- if (config.local):
- self.wd = webdriver.Firefox()
- else:
- desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
- desired_capabilities['version'] = '24'
- desired_capabilities['platform'] = 'Linux'
- desired_capabilities['name'] = 'test_access'
- self.wd = webdriver.Remote(
- desired_capabilities=desired_capabilities,
- command_executor="http://esodvn:325caef9-81dd-47a5-8b74-433057ce888f@ondemand.saucelabs.com:80/wd/hub"
- )
-
- self.wd.implicitly_wait(60)
-
- def test_test_dataverse(self):
- success = True
- wd = self.wd
- wd.get(config.accessURL)
- wd.find_element_by_link_text("Log In").click()
- time.sleep(1)
- if not ("Login" in wd.find_element_by_tag_name("html").text):
- success = False
- print("verifyTextPresent failed")
- wd.find_element_by_id("loginForm:userName").click()
- wd.find_element_by_id("loginForm:userName").clear()
- wd.find_element_by_id("loginForm:userName").send_keys("tester")
- wd.find_element_by_id("loginForm:password").click()
- wd.find_element_by_id("loginForm:password").clear()
- wd.find_element_by_id("loginForm:password").send_keys("tester")
- wd.find_element_by_id("loginForm:login").click()
- wd.find_element_by_id("shareForm:shareData_button").click()
- wd.find_element_by_link_text("Create Dataverse").click()
- wd.find_element_by_id("dataverseForm:name").click()
- wd.find_element_by_id("dataverseForm:name").clear()
- wd.find_element_by_id("dataverseForm:name").send_keys("test dv")
- wd.find_element_by_id("dataverseForm:alias").click()
- wd.find_element_by_id("dataverseForm:alias").clear()
- wd.find_element_by_id("dataverseForm:alias").send_keys("testdv")
- wd.find_element_by_id("dataverseForm:contactEmail").click()
- wd.find_element_by_id("dataverseForm:contactEmail").clear()
- wd.find_element_by_id("dataverseForm:contactEmail").send_keys("kcondon@hmdc.harvard.edu")
- wd.find_element_by_id("dataverseForm:affiliation").click()
- wd.find_element_by_id("dataverseForm:affiliation").clear()
- wd.find_element_by_id("dataverseForm:affiliation").send_keys("IQSS")
- wd.find_element_by_id("dataverseForm:description").click()
- wd.find_element_by_id("dataverseForm:description").clear()
- wd.find_element_by_id("dataverseForm:description").send_keys("This is a test")
- wd.find_element_by_id("dataverseForm:save").click()
-
- wd.find_element_by_link_text("Log Out").click()
- self.assertTrue(success)
-
- def tearDown(self):
- if not (config.local):
- print("Link to your job: https://saucelabs.com/jobs/%s" % self.wd.session_id)
- self.wd.quit()
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/test_root_dataverse.py b/tests/test_root_dataverse.py
deleted file mode 100644
index c97a99c8b01..00000000000
--- a/tests/test_root_dataverse.py
+++ /dev/null
@@ -1,62 +0,0 @@
-from selenium import webdriver
-import time, unittest, config
-
-def is_alert_present(wd):
- try:
- wd.switch_to_alert().text
- return True
- except:
- return False
-
-class test_root_dataverse(unittest.TestCase):
- def setUp(self):
- if (config.local):
- self.wd = webdriver.Firefox()
- else:
- desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
- desired_capabilities['version'] = '24'
- desired_capabilities['platform'] = 'Linux'
- desired_capabilities['name'] = 'test_access'
- self.wd = webdriver.Remote(
- desired_capabilities=desired_capabilities,
- command_executor="http://esodvn:325caef9-81dd-47a5-8b74-433057ce888f@ondemand.saucelabs.com:80/wd/hub"
- )
-
- self.wd.implicitly_wait(60)
-
- def test_test_root_dataverse(self):
- success = True
- wd = self.wd
- wd.get(config.accessURL)
- if not ("Create Root Dataverse" in wd.find_element_by_tag_name("html").text):
- print("Root dataverse exists. Exiting.")
- return
- wd.find_element_by_id("dataverseForm:name").click()
- wd.find_element_by_id("dataverseForm:name").clear()
- wd.find_element_by_id("dataverseForm:name").send_keys("root dv")
- wd.find_element_by_id("dataverseForm:alias").click()
- wd.find_element_by_id("dataverseForm:alias").clear()
- wd.find_element_by_id("dataverseForm:alias").send_keys("rootdv")
- wd.find_element_by_id("dataverseForm:contactEmail").click()
- wd.find_element_by_id("dataverseForm:contactEmail").clear()
- wd.find_element_by_id("dataverseForm:contactEmail").send_keys("kcondon@hmdc.harvard.edu")
- wd.find_element_by_id("dataverseForm:affiliation").click()
- wd.find_element_by_id("dataverseForm:affiliation").clear()
- wd.find_element_by_id("dataverseForm:affiliation").send_keys("IQSS")
- wd.find_element_by_id("dataverseForm:description").click()
- wd.find_element_by_id("dataverseForm:description").clear()
- wd.find_element_by_id("dataverseForm:description").send_keys("This is a test")
- wd.find_element_by_id("dataverseForm:save").click()
- time.sleep(1)
- if not ("root dv" in wd.find_element_by_tag_name("html").text):
- success = False
- print("verify root dv name failed")
- self.assertTrue(success)
-
- def tearDown(self):
- if not (config.local):
- print("Link to your job: https://saucelabs.com/jobs/%s" % self.wd.session_id)
- self.wd.quit()
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/test_suite.py b/tests/test_suite.py
deleted file mode 100644
index 7210d5cc965..00000000000
--- a/tests/test_suite.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# This contain a list of individual test and will be run from Jenkins.
-
-import unittest
-import test_access
-import test_create_test_account
-import test_root_dataverse
-import test_account
-import test_dataverse
-import test_dataset
-import test_dataset_fileupload
-
-# This is a list of testFileName.testClass
-def suite():
- return unittest.TestSuite((\
- unittest.makeSuite(test_access.test_access),
- unittest.makeSuite(test_create_test_account.test_create_test_account),
- unittest.makeSuite(test_root_dataverse.test_root_dataverse),
- unittest.makeSuite(test_account.test_account),
- unittest.makeSuite(test_dataverse.test_dataverse),
- unittest.makeSuite(test_dataset.test_dataset),
- unittest.makeSuite(test_dataset_fileupload.test_dataset_fileupload),
- ))
-
-if __name__ == '__main__':
- result = unittest.TextTestRunner(verbosity=2).run(suite())
\ No newline at end of file