From f2b8075b76d5d2c1a962ac7d844b050f6b2be51a Mon Sep 17 00:00:00 2001
From: Jaden Diefenbaugh <jaden.diefenbaugh@idiap.ch>
Date: Fri, 10 Aug 2018 12:01:22 -0700
Subject: [PATCH] [js] added first part of selenium test for tutorial

---
 conda/js/test/selenium_tutorial_test.js | 58 +++++++++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 conda/js/test/selenium_tutorial_test.js

diff --git a/conda/js/test/selenium_tutorial_test.js b/conda/js/test/selenium_tutorial_test.js
new file mode 100644
index 00000000..4ae15ce9
--- /dev/null
+++ b/conda/js/test/selenium_tutorial_test.js
@@ -0,0 +1,58 @@
+// must have the rest server running with at least the contents of the tutorial prefix
+const {Builder, By, Key, until} = require('selenium-webdriver');
+const firefox = require('selenium-webdriver/firefox');
+
+const options = new firefox.Options();
+//options.addArguments('-headless');
+
+(async function example() {
+	let driver = await new Builder().forBrowser('firefox').setFirefoxOptions(options).build();
+	try {
+		await driver.get('http://localhost:9101/');
+
+		// create the means experiment
+		// navigate to exp list
+		await driver.findElement(By.linkText('experiments')).click();
+		//.sendKeys('webdriver', Key.RETURN);
+		await driver.wait(until.elementLocated(By.css('input[placeholder="Search experiments..."]'), 2000));
+
+		// click the clone button next to test/test/iris/1/iris
+		let eLink = await driver.findElement(By.linkText('test/test/iris/1/iris'));
+		await eLink.findElement(By.xpath('../..')).findElement(By.css('button.btn-outline-success')).click();
+		await driver.wait(until.elementLocated(By.css('.modal')), 2000);
+
+		// make new exp
+		const eUser = await driver.findElement(By.css('input[placeholder="Experiment user..."]'));
+		eUser.clear();
+		eUser.sendKeys('selenium');
+		const eName = driver.findElement(By.css('input[placeholder="Experiment name..."]'));
+		eName.clear();
+		eName.sendKeys('means');
+		await driver.sleep(1000);
+		await driver.findElement(By.css('.modal button.btn-primary')).click();
+
+		// go to new exp
+		await driver.wait(until.elementLocated(By.linkText('selenium/test/iris/1/means')), 2000);
+		await driver.sleep(1000);
+		await driver.findElement(By.linkText('selenium/test/iris/1/means')).click();
+		await driver.wait(until.elementLocated(By.css('div.experimentEditor')), 2000);
+
+		// CLEANUP
+
+		// go back and delete exp
+		await driver.findElement(By.linkText('experiments')).click();
+		await driver.wait(until.elementLocated(By.css('input[placeholder="Search experiments..."]'), 2000));
+		eLink = await driver.findElement(By.linkText('selenium/test/iris/1/means'));
+		await eLink.findElement(By.xpath('../..')).findElement(By.css('button.btn-outline-danger')).click();
+		await driver.sleep(1000);
+		await driver.findElement(By.css('.modal button.btn-danger')).click();
+		await driver.sleep(1000);
+
+		console.log('selenium tests finished successfully!');
+	} catch(e) {
+		console.log('selenium tests failed!');
+		console.error(e);
+	} finally {
+		await driver.quit();
+	}
+})();
-- 
GitLab