Merge lp:~osomon/oxide/context-menu into lp:~oxide-developers/oxide/oxide.trunk

Proposed by Olivier Tilloy
Status: Merged
Merged at revision: 1114
Proposed branch: lp:~osomon/oxide/context-menu
Merge into: lp:~oxide-developers/oxide/oxide.trunk
Diff against target: 176 lines (+105/-19)
3 files modified
qt/tests/qmltests/api/tst_WebView_contextMenu.qml (+16/-19)
qt/tests/qmltests/api/tst_WebView_executeEditingCommand.html (+5/-0)
qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml (+84/-0)
To merge this branch: bzr merge lp:~osomon/oxide/context-menu
Reviewer Review Type Date Requested Status
Chris Coulson Pending
Review via email: mp+260913@code.launchpad.net

Commit message

Add missing unit tests now that clipboard support has landed.

To post a comment you must log in.
lp:~osomon/oxide/context-menu updated
1057. By Olivier Tilloy

Move tests for executeEditingCommand to a separate test file.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'qt/tests/qmltests/api/tst_WebView_contextMenu.qml'
2--- qt/tests/qmltests/api/tst_WebView_contextMenu.qml 2015-05-28 23:51:39 +0000
3+++ qt/tests/qmltests/api/tst_WebView_contextMenu.qml 2015-06-03 10:13:08 +0000
4@@ -49,7 +49,7 @@
5 }
6
7 function cleanup() {
8- webView.currentContextMenu.contextModel.close()
9+ webView.currentContextMenu.contextModel.close();
10 tryCompare(webView, "currentContextMenu", null);
11 }
12
13@@ -130,11 +130,12 @@
14 verify(!(model.editFlags & WebView.RedoCapability));
15 verify(!(model.editFlags & WebView.CutCapability));
16 verify(!(model.editFlags & WebView.CopyCapability));
17+ verify(model.editFlags & WebView.PasteCapability);
18 verify(!(model.editFlags & WebView.EraseCapability));
19 verify(model.editFlags & WebView.SelectAllCapability);
20+ cleanup();
21+
22 webView.executeEditingCommand(WebView.EditingCommandSelectAll);
23- cleanup();
24-
25 invokeContextMenu("editable");
26 model = webView.currentContextMenu.contextModel;
27 compare(model.selectionText, "text area");
28@@ -142,37 +143,33 @@
29 verify(!(model.editFlags & WebView.RedoCapability));
30 verify(model.editFlags & WebView.CutCapability);
31 verify(model.editFlags & WebView.CopyCapability);
32+ verify(model.editFlags & WebView.PasteCapability);
33 verify(model.editFlags & WebView.EraseCapability);
34 verify(model.editFlags & WebView.SelectAllCapability);
35+ cleanup();
36+
37 webView.executeEditingCommand(WebView.EditingCommandErase);
38- cleanup();
39- var r = webView.getTestApi().evaluateCode(
40- "document.querySelector(\"#editable\").value");
41- compare(r, "");
42-
43 invokeContextMenu("editable");
44 model = webView.currentContextMenu.contextModel;
45 compare(model.selectionText, "");
46 verify(model.editFlags & WebView.UndoCapability);
47 verify(!(model.editFlags & WebView.RedoCapability));
48+ cleanup();
49+
50 webView.executeEditingCommand(WebView.EditingCommandUndo);
51- cleanup();
52- var r = webView.getTestApi().evaluateCode(
53- "document.querySelector(\"#editable\").value");
54- compare(r, "text area");
55-
56 invokeContextMenu("editable");
57 model = webView.currentContextMenu.contextModel;
58 compare(model.selectionText, "text area");
59 verify(!(model.editFlags & WebView.UndoCapability));
60 verify(model.editFlags & WebView.RedoCapability);
61+ cleanup();
62+
63 webView.executeEditingCommand(WebView.EditingCommandRedo);
64- var r = webView.getTestApi().evaluateCode(
65- "document.querySelector(\"#editable\").value");
66- compare(r, "");
67-
68- // TODO: once clipboard support is implemented
69- // (https://launchpad.net/bugs/1301419), test cut/copy/paste
70+ invokeContextMenu("editable");
71+ model = webView.currentContextMenu.contextModel;
72+ compare(model.selectionText, "");
73+ verify(model.editFlags & WebView.UndoCapability);
74+ verify(!(model.editFlags & WebView.RedoCapability));
75 }
76
77 function test_WebView_contextMenu_saveLink_saveMedia() {
78
79=== added file 'qt/tests/qmltests/api/tst_WebView_executeEditingCommand.html'
80--- qt/tests/qmltests/api/tst_WebView_executeEditingCommand.html 1970-01-01 00:00:00 +0000
81+++ qt/tests/qmltests/api/tst_WebView_executeEditingCommand.html 2015-06-03 10:13:08 +0000
82@@ -0,0 +1,5 @@
83+<html>
84+<body>
85+ <textarea id="textarea" autofocus rows="3" cols="10">lorem ipsum</textarea>
86+</body>
87+</html>
88
89=== added file 'qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml'
90--- qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml 1970-01-01 00:00:00 +0000
91+++ qt/tests/qmltests/api/tst_WebView_executeEditingCommand.qml 2015-06-03 10:13:08 +0000
92@@ -0,0 +1,84 @@
93+import QtQuick 2.0
94+import QtTest 1.0
95+import com.canonical.Oxide 1.8
96+import com.canonical.Oxide.Testing 1.0
97+
98+TestWebView {
99+ id: webView
100+ focus: true
101+ width: 200
102+ height: 200
103+
104+ TestCase {
105+ name: "WebView_executeEditingCommand"
106+ when: windowShown
107+
108+ function compare_textarea_value(expected) {
109+ compare(webView.getTestApi().evaluateCode(
110+ "document.querySelector(\"#textarea\").value"), expected);
111+ }
112+
113+ function get_selectionStart() {
114+ return webView.getTestApi().evaluateCode(
115+ "document.querySelector(\"#textarea\").selectionStart");
116+ }
117+
118+ function get_selectionEnd() {
119+ return webView.getTestApi().evaluateCode(
120+ "document.querySelector(\"#textarea\").selectionEnd");
121+ }
122+
123+ function init() {
124+ webView.url = "http://testsuite/tst_WebView_executeEditingCommand.html";
125+ verify(webView.waitForLoadSucceeded(),
126+ "Timed out waiting for successful load");
127+ compare_textarea_value("lorem ipsum");
128+ }
129+
130+ function test_WebView_executeEditingCommand_undo_redo() {
131+ webView.executeEditingCommand(WebView.EditingCommandSelectAll);
132+ keyClick(Qt.Key_Backspace);
133+ compare_textarea_value("");
134+ webView.executeEditingCommand(WebView.EditingCommandUndo);
135+ compare_textarea_value("lorem ipsum");
136+ webView.executeEditingCommand(WebView.EditingCommandRedo);
137+ compare_textarea_value("");
138+ }
139+
140+ function test_WebView_executeEditingCommand_cut() {
141+ webView.executeEditingCommand(WebView.EditingCommandSelectAll);
142+ OxideTestingUtils.clearClipboard();
143+ webView.executeEditingCommand(WebView.EditingCommandCut);
144+ compare_textarea_value("");
145+ compare(OxideTestingUtils.getFromClipboard("text/plain"), "lorem ipsum");
146+ }
147+
148+ function test_WebView_executeEditingCommand_copy() {
149+ webView.executeEditingCommand(WebView.EditingCommandSelectAll);
150+ OxideTestingUtils.clearClipboard();
151+ webView.executeEditingCommand(WebView.EditingCommandCopy);
152+ compare_textarea_value("lorem ipsum");
153+ compare(OxideTestingUtils.getFromClipboard("text/plain"), "lorem ipsum");
154+ }
155+
156+ function test_WebView_executeEditingCommand_paste() {
157+ webView.executeEditingCommand(WebView.EditingCommandSelectAll);
158+ OxideTestingUtils.copyToClipboard("text/plain", "foo bar baz");
159+ webView.executeEditingCommand(WebView.EditingCommandPaste);
160+ compare_textarea_value("foo bar baz");
161+ }
162+
163+ function test_WebView_executeEditingCommand_erase() {
164+ webView.executeEditingCommand(WebView.EditingCommandSelectAll);
165+ webView.executeEditingCommand(WebView.EditingCommandErase);
166+ compare_textarea_value("");
167+ }
168+
169+ function test_WebView_executeEditingCommand_selectAll() {
170+ compare(get_selectionStart(), get_selectionEnd());
171+ webView.executeEditingCommand(WebView.EditingCommandSelectAll);
172+ compare(get_selectionStart(), 0);
173+ compare(get_selectionEnd(), "lorem ipsum".length);
174+ }
175+ }
176+}

Subscribers

People subscribed via source and target branches