|
@@ -0,0 +1,61 @@
|
|
|
+/**
|
|
|
+ * Copyright © 2016-2018 Threema GmbH (https://threema.ch/).
|
|
|
+ *
|
|
|
+ * This file is part of Threema Web.
|
|
|
+ */
|
|
|
+// tslint:disable:no-unused-expression
|
|
|
+
|
|
|
+import { Selector, ClientFunction } from 'testcafe';
|
|
|
+
|
|
|
+// NOTE: These tests use test cafe.
|
|
|
+// See http://devexpress.github.io/testcafe/documentation/getting-started/ for
|
|
|
+// documentation on how to write UI tests.
|
|
|
+
|
|
|
+fixture `Compose Area`
|
|
|
+ .page `http://localhost:7777/tests/ui/compose_area.html`;
|
|
|
+
|
|
|
+test('Show and hide emoji selector', async (t) => {
|
|
|
+ const keyboard = await Selector('.emoji-keyboard');
|
|
|
+
|
|
|
+ // Not visible initially
|
|
|
+ await t.expect(keyboard.visible).eql(false);
|
|
|
+
|
|
|
+ // Show
|
|
|
+ await t.click('.emoji-trigger');
|
|
|
+
|
|
|
+ // Visible
|
|
|
+ await t.expect(keyboard.visible).eql(true);
|
|
|
+
|
|
|
+ // Hide
|
|
|
+ await t.click('.emoji-trigger');
|
|
|
+
|
|
|
+ // Visible
|
|
|
+ await t.expect(keyboard.visible).eql(false);
|
|
|
+});
|
|
|
+
|
|
|
+test('Insert emoji', async (t) => {
|
|
|
+ // Show emoji keyboard
|
|
|
+ await t.click('.emoji-trigger');
|
|
|
+
|
|
|
+ // Insert woman zombie emoji
|
|
|
+ await t.click('.e1._1f9df-2640');
|
|
|
+
|
|
|
+ // Insert beer
|
|
|
+ await t.click('.e1-food').click('.e1._1f37b');
|
|
|
+
|
|
|
+ // Ensure both have been inserted
|
|
|
+ const getChildNodeCount = await ClientFunction(() => {
|
|
|
+ return document.querySelector('div.compose').childNodes.length;
|
|
|
+ });
|
|
|
+ await t.expect(await getChildNodeCount()).eql(2);
|
|
|
+
|
|
|
+ const firstEmoji = await Selector('div.compose img').nth(0)();
|
|
|
+ await t.expect(firstEmoji.tagName).eql('img');
|
|
|
+ await t.expect(firstEmoji.attributes.title).eql(':woman_zombie:');
|
|
|
+ await t.expect(firstEmoji.classNames).eql(['e1']);
|
|
|
+
|
|
|
+ const secondEmoji = await Selector('div.compose img').nth(1)();
|
|
|
+ await t.expect(secondEmoji.tagName).eql('img');
|
|
|
+ await t.expect(secondEmoji.attributes.title).eql(':beers:');
|
|
|
+ await t.expect(secondEmoji.classNames).eql(['e1']);
|
|
|
+});
|