Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,13 @@ using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;

[TestFixture]
public class LoginTest {
private IWebDriver driver;
public IDictionary<string, object> vars {get; private set;}
private IJavaScriptExecutor js;

[SetUp]
public void SetUp() {
driver = new ChromeDriver();
Expand Down Expand Up @@ -65,11 +67,13 @@ using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;

[TestFixture]
public class ControlflowTest {
private IWebDriver driver;
public IDictionary<string, object> vars {get; private set;}
private IJavaScriptExecutor js;

[SetUp]
public void SetUp() {
driver = new ChromeDriver();
Expand Down Expand Up @@ -159,11 +163,13 @@ using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;

[TestFixture]
public class ReusedmethodsTest {
private IWebDriver driver;
public IDictionary<string, object> vars {get; private set;}
private IJavaScriptExecutor js;

[SetUp]
public void SetUp() {
driver = new ChromeDriver();
Expand All @@ -186,6 +192,7 @@ public class ReusedmethodsTest {
public void tinymethod() {
vars[\\"value\\"] = \\"field\\";
}

[Test]
public void invalidcredentials() {
vars[\\"username\\"] = \\"blah\\";
Expand Down Expand Up @@ -223,11 +230,13 @@ using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;

[TestFixture]
public class DefaultSuiteTest {
private IWebDriver driver;
public IDictionary<string, object> vars {get; private set;}
private IJavaScriptExecutor js;

[SetUp]
public void SetUp() {
driver = new ChromeDriver();
Expand Down Expand Up @@ -260,6 +269,7 @@ public class DefaultSuiteTest {
driver.SwitchTo().Window(vars[\\"win9425\\"].ToString());
Assert.That(driver.Title, Is.EqualTo(\\"New Window\\"));
}

[Test]
public void reuse() {
selectwindow();
Expand All @@ -282,11 +292,13 @@ using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;

[TestFixture]
public class DefaultSuiteTest {
private IWebDriver driver;
public IDictionary<string, object> vars {get; private set;}
private IJavaScriptExecutor js;

[SetUp]
public void SetUp() {
driver = new ChromeDriver();
Expand Down Expand Up @@ -319,6 +331,7 @@ public class DefaultSuiteTest {
driver.SwitchTo().Window(vars[\\"win9425\\"].ToString());
Assert.That(driver.Title, Is.EqualTo(\\"New Window\\"));
}

[Test]
public void reuse() {
selectwindow();
Expand Down Expand Up @@ -350,11 +363,13 @@ using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;

[TestFixture]
public class LoginTest {
private IWebDriver driver;
public IDictionary<string, object> vars {get; private set;}
private IJavaScriptExecutor js;

[SetUp]
public void SetUp() {
driver = new ChromeDriver();
Expand Down Expand Up @@ -392,11 +407,13 @@ using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;

[TestFixture]
public class ValidcredentialsTest {
private IWebDriver driver;
public IDictionary<string, object> vars {get; private set;}
private IJavaScriptExecutor js;

[SetUp]
public void SetUp() {
driver = new ChromeDriver();
Expand All @@ -416,6 +433,7 @@ public class ValidcredentialsTest {
driver.FindElement(By.CssSelector(\\".fa\\")).Click();
}
}

[Test]
public void validcredentials() {
vars[\\"username\\"] = \\"tomsmith\\";
Expand All @@ -440,11 +458,13 @@ using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;

[TestFixture]
public class SelectwindowTest {
private IWebDriver driver;
public IDictionary<string, object> vars {get; private set;}
private IJavaScriptExecutor js;

[SetUp]
public void SetUp() {
driver = new ChromeDriver();
Expand All @@ -469,6 +489,7 @@ public class SelectwindowTest {
return whNow.First().ToString();
}
}

[Test]
public void selectwindow() {
driver.Navigate().GoToUrl(\\"http://the-internet.herokuapp.com/\\");
Expand Down Expand Up @@ -501,11 +522,13 @@ using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;

[TestFixture]
public class LoginTest {
private IWebDriver driver;
public IDictionary<string, object> vars {get; private set;}
private IJavaScriptExecutor js;

[SetUp]
public void SetUp() {
driver = new RemoteWebDriver(new Uri(\\"http://localhost:4444/wd/hub\\"), new FirefoxOptions().ToCapabilities());
Expand Down
108 changes: 41 additions & 67 deletions packages/code-export-csharp-nunit/__test__/src/index.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,8 @@

import fs from 'fs'
import path from 'path'
import codeExport, {
emitTest,
emitSuite,
_emitMethod,
_findTestByName,
} from '../../src'
import languageExport from '../../src'
import Command from '../../src/command'
import { project as projectProcessor } from 'side-code-export'

function readFile(filename) {
return JSON.parse(
Expand All @@ -43,112 +37,92 @@ function readFile(filename) {
)
}

// These tests use the v3 export API (emitTest, emitSuite), which no longer
// exists. Port them to codeExport.emit.test and codeExport.emit.suite.
describe.skip('Code Export C# NUnit', () => {
const options = (project) => ({
project,
tests: project.tests,
enableOriginTracing: false,
enableDescriptionAsComment: false,
beforeEachOptions: {},
})

describe('Code Export C# NUnit', () => {
it('should export a test', async () => {
const project = readFile('single-test.side')
const results = await emitTest({
baseUrl: project.url,
const results = await languageExport.emit.test({
...options(project),
test: project.tests[0],
tests: project.tests,
})
expect(results.body).toBeDefined()
expect(results.body).toMatchSnapshot()
})
it('should export a test with grid execution', async () => {
const project = readFile('single-test.side')
const results = await emitTest({
baseUrl: project.url,
const results = await languageExport.emit.test({
...options(project),
test: project.tests[0],
tests: project.tests,
beforeEachOptions: {
browserName: 'Firefox',
gridUrl: 'http://localhost:4444/wd/hub',
},
})
expect(results.body).toBeDefined()
expect(results.body).toMatchSnapshot()
})
it('should export a suite', async () => {
const project = normalizeProject(readFile('single-suite.side'))
const results = await emitSuite({
baseUrl: project.url,
const project = readFile('single-suite.side')
const results = await languageExport.emit.suite({
...options(project),
suite: project.suites[0],
tests: project.tests,
})
expect(results.body).toBeDefined()
expect(results.body).toMatchSnapshot()
})
it('should export a test with a reused test method', async () => {
const project = normalizeProject(readFile('test-case-reuse.side'))
const results = await emitTest({
baseUrl: project.url,
const project = readFile('test-case-reuse.side')
const results = await languageExport.emit.test({
...options(project),
test: project.tests[1],
tests: project.tests,
})
expect(results.body).toBeDefined()
expect(results.body).toMatchSnapshot()
})
it('should export a test with commands that open a new window', async () => {
const project = normalizeProject(readFile('select-window.side'))
const results = await emitTest({
baseUrl: project.url,
test: project.tests[0],
tests: project.tests,
})
expect(results.body).toBeDefined()
expect(results.body).toMatchSnapshot()
})
it('should export a suite with a reused test method', async () => {
const project = normalizeProject(readFile('test-case-reuse.side'))
const results = await emitSuite({
baseUrl: project.url,
const project = readFile('test-case-reuse.side')
const results = await languageExport.emit.suite({
...options(project),
suite: project.suites[0],
tests: project.tests,
})
expect(results.body).toBeDefined()
expect(results.body).toMatchSnapshot()
})
it('should export a suite that uses control flow commands', async () => {
const project = normalizeProject(readFile('control-flow-suite.side'))
const results = await emitSuite({
baseUrl: project.url,
const project = readFile('control-flow-suite.side')
const results = await languageExport.emit.suite({
...options(project),
suite: project.suites[0],
tests: project.tests,
})
expect(results.body).toBeDefined()
expect(results.body).toMatchSnapshot()
})
it('should export a test with commands that open a new window', async () => {
const project = readFile('select-window.side')
const results = await languageExport.emit.test({
...options(project),
test: project.tests[0],
})
expect(results.body).toMatchSnapshot()
})
it('should export a suite with commands that open a new window inside of a reused test method', async () => {
const project = normalizeProject(readFile('nested-select-window.side'))
const results = await emitSuite({
baseUrl: project.url,
const project = readFile('nested-select-window.side')
const results = await languageExport.emit.suite({
...options(project),
suite: project.suites[0],
tests: project.tests,
})
expect(results.body).toBeDefined()
expect(results.body).toMatchSnapshot()
})
it('should export a suite with just one new window util method when there are multiple commands that open a new window', async () => {
const project = normalizeProject(readFile('nested-select-window-v2.side'))
const results = await emitSuite({
baseUrl: project.url,
const project = readFile('nested-select-window-v2.side')
const results = await languageExport.emit.suite({
...options(project),
suite: project.suites[0],
tests: project.tests,
})
expect(results.body).toBeDefined()
expect(results.body).toMatchSnapshot()
})
it('should export the command emitter', () => {
expect(Command.emit).toStrictEqual(codeExport.emit.command)
expect(languageExport.emit.command).toBe(Command.emit)
})
})

function normalizeProject(project) {
let _project = { ...project }
_project.suites.forEach(suite => {
projectProcessor.normalizeTestsInSuite({ suite, tests: _project.tests })
})
return _project
}
Loading
Loading