commit 9b21e3740b45d96b3df9d1ac9d993236d9c5d4a6
Author: Herre Groen <herre@yoast.com>
Date:   Sat Jun 22 10:12:43 2019 +0200

    Add e2e tests setup

diff --git a/tests/e2e/specs/login.test.js b/tests/e2e/specs/login.test.js
new file mode 100644
index 0000000000..8ee191ee2f
--- /dev/null
+++ b/tests/e2e/specs/login.test.js
@@ -0,0 +1,34 @@
+import { createURL } from '@wordpress/e2e-test-utils';
+
+describe( 'The login form', () => {
+	it( 'Should contain a username input', async () => {
+		await page.goto( createURL( 'wp-login.php' ) );
+		const usernameInput = await page.$( 'input[type="text"][name="log"]' );
+		expect( usernameInput ).not.toBeNull();
+	} );
+
+	it( 'Should contain a password input', async () => {
+		await page.goto( createURL( 'wp-login.php' ) );
+		const passwordInput = await page.$( 'input[type="password"][name="pwd"]' );
+		expect( passwordInput ).not.toBeNull();
+	} );
+
+	it( 'Should contain a submit button', async () => {
+		await page.goto( createURL( 'wp-login.php' ) );
+		const submitButton = await page.$( 'input[type="submit"][name="wp-submit"]' );
+		expect( submitButton ).not.toBeNull();
+	} );
+
+	it( 'Should contain a rememberme checkbox', async () => {
+		await page.goto( createURL( 'wp-login.php' ) );
+		const rembembermeCheckbox = await page.$( 'input[type="checkbox"][name="rememberme"]' );
+		expect( rembembermeCheckbox ).not.toBeNull();
+	} );
+
+	it( 'Should contain a lost your password link', async () => {
+		await page.goto( createURL( 'wp-login.php' ) );
+		const lostPasswordUrl = createURL( 'wp-login.php' ) + '?action=lostpassword';
+		const lostPasswordLink = await page.$( `a[href="${ lostPasswordUrl }"]` );
+		expect( lostPasswordLink ).not.toBeNull();
+	} );
+} );
