Nux

Merge lp:~smspillaz/nux/nux.fix_1112321 into lp:nux

Proposed by Sam Spilsbury
Status: Merged
Approved by: Brandon Schaefer
Approved revision: 758
Merged at revision: 762
Proposed branch: lp:~smspillaz/nux/nux.fix_1112321
Merge into: lp:nux
Prerequisite: lp:~smspillaz/nux/nux.fix_1097281
Diff against target: 1355 lines (+671/-619)
4 files modified
tests/nux_automated_test_framework.cpp (+39/-8)
tests/nux_automated_test_framework.h (+7/-0)
tests/xtest-text-entry-compositionkeys.cpp (+315/-308)
tests/xtest-text-entry-deadkeys.cpp (+310/-303)
To merge this branch: bzr merge lp:~smspillaz/nux/nux.fix_1112321
Reviewer Review Type Date Requested Status
Brandon Schaefer (community) Approve
PS Jenkins bot continuous-integration Pending
Review via email: mp+146098@code.launchpad.net

Commit message

Skip the composition key tests if the server doesn't support it so that
we don't SIGABRT when trying to use that functionality (LP: #1112321)

Description of the change

Skip the composition key tests if the server doesn't support it so that
we don't SIGABRT when trying to use that functionality (LP: #1112321).

All the nux tests now pass

To post a comment you must log in.
Revision history for this message
Michi Henning (michihenning) wrote :

As a general comment, there are hundreds of lines that repeat every five or ten lines, doing the same thing over and over again. It would probably help a lot in terms of the maintainability of the tests if there were a table containing the inputs and outputs. In that case, there would be the table (easy to read, one line per test), and something like ten or twenty lines of code for the single test that runs through the table.

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

On Fri, Feb 1, 2013 at 7:41 PM, Michi Henning
<email address hidden> wrote:
> As a general comment, there are hundreds of lines that repeat every five or ten lines, doing the same thing over and over again. It would probably help a lot in terms of the maintainability of the tests if there were a table containing the inputs and outputs. In that case, there would be the table (easy to read, one line per test), and something like ten or twenty lines of code for the single test that runs through the table.

I agree.

I note that the "xtest" set of tests in Nux appear to be mainly
acceptance/integration level tests, which makes the stateful testing
model slightly more acceptable. There's a lot of dependencies between
each of the tests, and they don't use an xUnit like framework.

The set-up and tear-down times would almost make separation not worth
it, although I'm pretty sure the tests take long enough with all those
sleep() statements used to get around the threading concerns.

We should focus on this later on.

> --
> https://code.launchpad.net/~smspillaz/nux/nux.fix_1112321/+merge/146098
> You are the owner of lp:~smspillaz/nux/nux.fix_1112321.

--
Sam Spilsbury

Revision history for this message
Brandon Schaefer (brandontschaefer) wrote :

@Michi

This test was generated by script that test every single possible compilation of dead keys. Though it would be nicer to go through the header in Nux to go over ever combo....overall no more dead key combos will be needed but I do agree there is wwwaaayy to much repetition in this test and I apologize :(

Looks good and works for me

Revision history for this message
Brandon Schaefer (brandontschaefer) :
review: Approve
Revision history for this message
Brandon Schaefer (brandontschaefer) wrote :

Approved!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/nux_automated_test_framework.cpp'
2--- tests/nux_automated_test_framework.cpp 2012-10-19 00:23:27 +0000
3+++ tests/nux_automated_test_framework.cpp 2013-02-01 11:15:39 +0000
4@@ -31,15 +31,16 @@
5 int NuxAutomatedTestFramework::safety_border_inside_view = 1; // pixels
6
7 NuxAutomatedTestFramework::NuxAutomatedTestFramework(nux::WindowThread *window_thread)
8+ : ready_to_start_(false)
9+ , display_(NULL)
10+ , window_thread_(window_thread)
11+ , window_x_(0)
12+ , window_y_(0)
13+ , window_width_(0)
14+ , window_height_(0)
15+ , terminate_when_test_over_(false)
16+ , composition_keys_supported_(false)
17 {
18- ready_to_start_ = false;
19- display_ = NULL;
20- window_thread_ = window_thread;
21- window_x_ = 0;
22- window_y_ = 0;
23- window_width_ = 0;
24- window_height_ = 0;
25- terminate_when_test_over_ = false;
26 }
27
28 NuxAutomatedTestFramework::~NuxAutomatedTestFramework()
29@@ -47,6 +48,17 @@
30 XCloseDisplay(display_);
31 }
32
33+void NuxAutomatedTestFramework::WarnCompositionKeysNotSupported()
34+{
35+ nuxWarningMsg("Composition keys are not supported by your server, "
36+ "not running the composition keys tests");
37+}
38+
39+bool NuxAutomatedTestFramework::CompositionKeysSupported()
40+{
41+ return composition_keys_supported_;
42+}
43+
44 void NuxAutomatedTestFramework::SetTerminateProgramWhenDone(bool terminate)
45 {
46 terminate_when_test_over_ = terminate;
47@@ -63,6 +75,25 @@
48 nux::Geometry rect = window_thread_->GetGraphicsDisplay().GetWindowGeometry();
49 //nuxDebugMsg("Window geometry: (%d, %d, %d, %d)", rect.x, rect.y, rect.width, rect.height);
50
51+ int min, max, per_keycode;
52+
53+ // Get the min and max keycodes
54+ XDisplayKeycodes(display_, &min, &max);
55+
56+ // Must be called with:
57+ // first_keycode: min,
58+ // keycode_count: max - min
59+ KeySym *syms = XGetKeyboardMapping(display_, min, max - min, &per_keycode);
60+
61+ // Number of keysyms is (max - min) * keysyms_per_keycode
62+ for (int i = 0; i < (max - min) * per_keycode; ++i)
63+ {
64+ if (syms[i] == XK_Multi_key)
65+ composition_keys_supported_ = true;
66+ }
67+
68+ XFree(syms);
69+
70 window_x_ = rect.x;
71 window_y_ = rect.y;
72 window_width_ = rect.width;
73
74=== modified file 'tests/nux_automated_test_framework.h'
75--- tests/nux_automated_test_framework.h 2012-09-11 06:50:44 +0000
76+++ tests/nux_automated_test_framework.h 2013-02-01 11:15:39 +0000
77@@ -30,6 +30,12 @@
78 NuxAutomatedTestFramework(nux::WindowThread *window_thread);
79 virtual ~NuxAutomatedTestFramework();
80
81+ //! Returns true if composition keys are supported by the server
82+ bool CompositionKeysSupported();
83+
84+ //! Warn the developer composition keys are not supported
85+ void WarnCompositionKeysNotSupported();
86+
87 //! Initialize the testing framework.
88 void Startup();
89
90@@ -130,6 +136,7 @@
91 int window_width_;
92 int window_height_;
93 bool terminate_when_test_over_;
94+ bool composition_keys_supported_;
95
96 static int mouse_motion_time_span; // in milliseconds
97 static int mouse_click_time_span; // in milliseconds
98
99=== modified file 'tests/xtest-text-entry-compositionkeys.cpp'
100--- tests/xtest-text-entry-compositionkeys.cpp 2012-10-01 23:37:25 +0000
101+++ tests/xtest-text-entry-compositionkeys.cpp 2013-02-01 11:15:39 +0000
102@@ -108,314 +108,321 @@
103
104 test.TestReportMsg(test_textentry->text_entry_, "TextEntry created");
105
106- test_textentry->ResetEvents();
107- test.ViewSendMouseMotionToCenter(test_textentry->text_entry_);
108-
109- test.ViewSendMouseClick(0, 1);
110-
111- test.ViewSendCompositionKeys("`o");
112- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ò", "ò");
113-
114- test.ViewSendCompositionKeys("~o");
115- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõ", "òõ");
116-
117- test.ViewSendCompositionKeys("^o");
118- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô", "òõô");
119-
120- test.ViewSendCompositionKeys("c=");
121- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€", "òõô€");
122-
123- test.ViewSendCompositionKeys("oc");
124- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©", "òõô€©");
125-
126- test.ViewSendCompositionKeys("\"w");
127- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©ẅ", "òõô€©ẅ");
128-
129- test.ViewSendCompositionKeys("'S");
130- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©ẅŚ", "òõô€©ẅŚ");
131- test.ViewSendCtrlA();
132- test.ViewSendDelete();
133-
134- nux::SleepForMilliseconds(100);;
135- //exclamdown # INVERTED EXCLAMATION MARK
136- test.ViewSendCompositionKeys("!!");
137- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¡", "¡");
138- test.ViewSendCtrlA();
139- test.ViewSendDelete();
140- nux::SleepForMilliseconds(100);;
141-
142- //CENT SIGN
143- test.ViewSendCompositionKeys("|c");
144- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¢", "¢");
145- test.ViewSendCtrlA();
146- test.ViewSendDelete();
147- nux::SleepForMilliseconds(100);;
148-
149- //POUND SIGN
150- test.ViewSendCompositionKeys("-L");
151- test.TestReportMsg(test_textentry->text_entry_->GetText() == "£", "£");
152- test.ViewSendCtrlA();
153- test.ViewSendDelete();
154- nux::SleepForMilliseconds(100);;
155-
156- //currency # CURRENCY SIGN
157- test.ViewSendCompositionKeys("xo");
158- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¤", "¤");
159- test.ViewSendCtrlA();
160- test.ViewSendDelete();
161- nux::SleepForMilliseconds(100);;
162-
163- //yen # YEN SIGN
164- test.ViewSendCompositionKeys("Y=");
165- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¥", "¥");
166- test.ViewSendCtrlA();
167- test.ViewSendDelete();
168- nux::SleepForMilliseconds(100);;
169-
170- //FEMININE ORDINAL INDICATOR
171- test.ViewSendCompositionKeys("^_a");
172- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ª", "ª");
173- test.ViewSendCtrlA();
174- test.ViewSendDelete();
175- nux::SleepForMilliseconds(100);;
176-
177- //guillemotleft # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
178- test.ViewSendCompositionKeys("<<");
179- test.TestReportMsg(test_textentry->text_entry_->GetText() == "«", "«");
180- test.ViewSendCtrlA();
181- test.ViewSendDelete();
182- nux::SleepForMilliseconds(100);;
183-
184- //SUPERSCRIPT THREE
185- test.ViewSendCompositionKeys("^3");
186- test.TestReportMsg(test_textentry->text_entry_->GetText() == "³", "³");
187- test.ViewSendCtrlA();
188- test.ViewSendDelete();
189- nux::SleepForMilliseconds(100);;
190-
191- //MIDDLE DOT
192- test.ViewSendCompositionKeys("..");
193- test.TestReportMsg(test_textentry->text_entry_->GetText() == "·", "·");
194- test.ViewSendCtrlA();
195- test.ViewSendDelete();
196- nux::SleepForMilliseconds(100);;
197-
198- //cedilla # CEDILLA
199- test.ViewSendCompositionKeys(", ");
200- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¸", "¸");
201- test.ViewSendCtrlA();
202- test.ViewSendDelete();
203- nux::SleepForMilliseconds(100);;
204-
205- //VULGAR FRACTION THREE QUARTERS
206- test.ViewSendCompositionKeys("34");
207- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¾", "¾");
208- test.ViewSendCtrlA();
209- test.ViewSendDelete();
210- nux::SleepForMilliseconds(100);;
211-
212- //questiondown # INVERTED QUESTION MARK
213- test.ViewSendCompositionKeys("??");
214- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¿", "¿");
215- test.ViewSendCtrlA();
216- test.ViewSendDelete();
217- nux::SleepForMilliseconds(100);;
218-
219- //LATIN CAPITAL LETTER A WITH GRAVE
220- test.ViewSendCompositionKeys("`A");
221- test.TestReportMsg(test_textentry->text_entry_->GetText() == "À", "À");
222- test.ViewSendCtrlA();
223- test.ViewSendDelete();
224- nux::SleepForMilliseconds(100);;
225-
226- //LATIN CAPITAL LETTER A WITH ACUTE
227- test.ViewSendCompositionKeys("'A");
228- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Á", "Á");
229- test.ViewSendCtrlA();
230- test.ViewSendDelete();
231- nux::SleepForMilliseconds(100);;
232-
233- //LATIN CAPITAL LETTER A WITH CIRCUMFLEX
234- test.ViewSendCompositionKeys("^A");
235- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Â", "Â");
236- test.ViewSendCtrlA();
237- test.ViewSendDelete();
238- nux::SleepForMilliseconds(100);;
239-
240- //LATIN CAPITAL LETTER A WITH TILDE
241- test.ViewSendCompositionKeys("~A");
242- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ã", "Ã");
243- test.ViewSendCtrlA();
244- test.ViewSendDelete();
245- nux::SleepForMilliseconds(100);;
246-
247- //LATIN CAPITAL LETTER A WITH DIAERESIS
248- test.ViewSendCompositionKeys("\"A");
249- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ä", "Ä");
250- test.ViewSendCtrlA();
251- test.ViewSendDelete();
252- nux::SleepForMilliseconds(100);;
253-
254- //LATIN CAPITAL LETTER A WITH RING ABOVE
255- test.ViewSendCompositionKeys("oA");
256- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Å", "Å");
257- test.ViewSendCtrlA();
258- test.ViewSendDelete();
259- nux::SleepForMilliseconds(100);;
260-
261- //AE # LATIN CAPITAL LETTER AE
262- test.ViewSendCompositionKeys("AE");
263- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Æ", "Æ");
264- test.ViewSendCtrlA();
265- test.ViewSendDelete();
266- nux::SleepForMilliseconds(100);;
267-
268- //ssharp # LATIN SMALL LETTER SHARP S
269- test.ViewSendCompositionKeys("ss");
270- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ß", "ß");
271- test.ViewSendCtrlA();
272- test.ViewSendDelete();
273- nux::SleepForMilliseconds(100);;
274-
275- //LATIN SMALL LETTER A WITH GRAVE
276- test.ViewSendCompositionKeys("`a");
277- test.TestReportMsg(test_textentry->text_entry_->GetText() == "à", "à");
278- test.ViewSendCtrlA();
279- test.ViewSendDelete();
280- nux::SleepForMilliseconds(100);;
281-
282- //LATIN SMALL LETTER A WITH ACUTE
283- test.ViewSendCompositionKeys("'a");
284- test.TestReportMsg(test_textentry->text_entry_->GetText() == "á", "á");
285- test.ViewSendCtrlA();
286- test.ViewSendDelete();
287- nux::SleepForMilliseconds(100);;
288-
289- //LATIN SMALL LETTER A WITH CIRCUMFLEX
290- test.ViewSendCompositionKeys("^a");
291- test.TestReportMsg(test_textentry->text_entry_->GetText() == "â", "â");
292- test.ViewSendCtrlA();
293- test.ViewSendDelete();
294- nux::SleepForMilliseconds(100);;
295-
296- //LATIN SMALL LETTER A WITH TILDE
297- test.ViewSendCompositionKeys("~a");
298- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ã", "ã");
299- test.ViewSendCtrlA();
300- test.ViewSendDelete();
301- nux::SleepForMilliseconds(100);;
302-
303- //LATIN SMALL LETTER A WITH DIAERESIS
304- test.ViewSendCompositionKeys("\"a");
305- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ä", "ä");
306- test.ViewSendCtrlA();
307- test.ViewSendDelete();
308- nux::SleepForMilliseconds(100);;
309-
310- //LATIN SMALL LETTER A WITH RING ABOVE
311- test.ViewSendCompositionKeys("oa");
312- test.TestReportMsg(test_textentry->text_entry_->GetText() == "å", "å");
313- test.ViewSendCtrlA();
314- test.ViewSendDelete();
315- nux::SleepForMilliseconds(100);;
316-
317- //ae # LATIN SMALL LETTER AE
318- test.ViewSendCompositionKeys("ae");
319- test.TestReportMsg(test_textentry->text_entry_->GetText() == "æ", "æ");
320- test.ViewSendCtrlA();
321- test.ViewSendDelete();
322- nux::SleepForMilliseconds(100);;
323-
324- //DIVISION SIGN
325- test.ViewSendCompositionKeys("-:");
326- test.TestReportMsg(test_textentry->text_entry_->GetText() == "÷", "÷");
327- test.ViewSendCtrlA();
328- test.ViewSendDelete();
329- nux::SleepForMilliseconds(100);;
330-
331- //LATIN CAPITAL LETTER A WITH OGONEK
332- test.ViewSendCompositionKeys(";A");
333- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ą", "Ą");
334- test.ViewSendCtrlA();
335- test.ViewSendDelete();
336- nux::SleepForMilliseconds(100);;
337-
338- //LATIN SMALL LETTER A WITH OGONEK
339- test.ViewSendCompositionKeys(";a");
340- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ą", "ą");
341- test.ViewSendCtrlA();
342- test.ViewSendDelete();
343- nux::SleepForMilliseconds(100);;
344-
345- //LATIN CAPITAL LETTER A WITH CARON
346- test.ViewSendCompositionKeys("cA");
347- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ǎ", "Ǎ");
348- test.ViewSendCtrlA();
349- test.ViewSendDelete();
350- nux::SleepForMilliseconds(100);
351-
352- //EN DASH
353- test.ViewSendCompositionKeys("--.");
354- test.TestReportMsg(test_textentry->text_entry_->GetText() == "–", "–");
355- test.ViewSendCtrlA();
356- test.ViewSendDelete();
357- nux::SleepForMilliseconds(100);
358-
359- //RIGHT SINGLE QUOTATION MARK
360- test.ViewSendCompositionKeys(">'");
361- test.TestReportMsg(test_textentry->text_entry_->GetText() == "’", "’");
362- test.ViewSendCtrlA();
363- test.ViewSendDelete();
364- nux::SleepForMilliseconds(100);
365-
366- //LEFT DOUBLE QUOTATION MARK
367- test.ViewSendCompositionKeys("<\"");
368- test.TestReportMsg(test_textentry->text_entry_->GetText() == "“", "“");
369- test.ViewSendCtrlA();
370- test.ViewSendDelete();
371- nux::SleepForMilliseconds(100);
372-
373- //RIGHT DOUBLE QUOTATION MARK
374- test.ViewSendCompositionKeys("\">");
375- test.TestReportMsg(test_textentry->text_entry_->GetText() == "”", "”");
376- test.ViewSendCtrlA();
377- test.ViewSendDelete();
378- nux::SleepForMilliseconds(100);
379-
380- //DOUBLE LOW-9 QUOTATION MARK
381- test.ViewSendCompositionKeys("\",");
382- test.TestReportMsg(test_textentry->text_entry_->GetText() == "„", "„");
383- test.ViewSendCtrlA();
384- test.ViewSendDelete();
385- nux::SleepForMilliseconds(100);
386-
387- //PER MILLE SIGN
388- test.ViewSendCompositionKeys("%o");
389- test.TestReportMsg(test_textentry->text_entry_->GetText() == "‰", "‰");
390- test.ViewSendCtrlA();
391- test.ViewSendDelete();
392- nux::SleepForMilliseconds(100);
393-
394- //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
395- test.ViewSendCompositionKeys(".>");
396- test.TestReportMsg(test_textentry->text_entry_->GetText() == "›", "›");
397- test.ViewSendCtrlA();
398- test.ViewSendDelete();
399- nux::SleepForMilliseconds(100);
400-
401- //EuroSign # EURO SIGN
402- test.ViewSendCompositionKeys("=E");
403- test.TestReportMsg(test_textentry->text_entry_->GetText() == "€", "€");
404- test.ViewSendCtrlA();
405- test.ViewSendDelete();
406- nux::SleepForMilliseconds(100);
407-
408- //REVERSED DOUBLE PRIME QUOTATION MARK
409- test.ViewSendCompositionKeys("\"\\");
410- test.TestReportMsg(test_textentry->text_entry_->GetText() == "〝", "〝");
411- test.ViewSendCtrlA();
412- test.ViewSendDelete();
413- nux::SleepForMilliseconds(100);
414+ if (test.CompositionKeysSupported())
415+ {
416+ test_textentry->ResetEvents();
417+ test.ViewSendMouseMotionToCenter(test_textentry->text_entry_);
418+
419+ test.ViewSendMouseClick(0, 1);
420+
421+ test.ViewSendCompositionKeys("`o");
422+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ò", "ò");
423+
424+ test.ViewSendCompositionKeys("~o");
425+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõ", "òõ");
426+
427+ test.ViewSendCompositionKeys("^o");
428+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô", "òõô");
429+
430+ test.ViewSendCompositionKeys("c=");
431+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€", "òõô€");
432+
433+ test.ViewSendCompositionKeys("oc");
434+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©", "òõô€©");
435+
436+ test.ViewSendCompositionKeys("\"w");
437+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©ẅ", "òõô€©ẅ");
438+
439+ test.ViewSendCompositionKeys("'S");
440+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©ẅŚ", "òõô€©ẅŚ");
441+ test.ViewSendCtrlA();
442+ test.ViewSendDelete();
443+
444+ nux::SleepForMilliseconds(100);;
445+ //exclamdown # INVERTED EXCLAMATION MARK
446+ test.ViewSendCompositionKeys("!!");
447+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¡", "¡");
448+ test.ViewSendCtrlA();
449+ test.ViewSendDelete();
450+ nux::SleepForMilliseconds(100);;
451+
452+ //CENT SIGN
453+ test.ViewSendCompositionKeys("|c");
454+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¢", "¢");
455+ test.ViewSendCtrlA();
456+ test.ViewSendDelete();
457+ nux::SleepForMilliseconds(100);;
458+
459+ //POUND SIGN
460+ test.ViewSendCompositionKeys("-L");
461+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "£", "£");
462+ test.ViewSendCtrlA();
463+ test.ViewSendDelete();
464+ nux::SleepForMilliseconds(100);;
465+
466+ //currency # CURRENCY SIGN
467+ test.ViewSendCompositionKeys("xo");
468+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¤", "¤");
469+ test.ViewSendCtrlA();
470+ test.ViewSendDelete();
471+ nux::SleepForMilliseconds(100);;
472+
473+ //yen # YEN SIGN
474+ test.ViewSendCompositionKeys("Y=");
475+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¥", "¥");
476+ test.ViewSendCtrlA();
477+ test.ViewSendDelete();
478+ nux::SleepForMilliseconds(100);;
479+
480+ //FEMININE ORDINAL INDICATOR
481+ test.ViewSendCompositionKeys("^_a");
482+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ª", "ª");
483+ test.ViewSendCtrlA();
484+ test.ViewSendDelete();
485+ nux::SleepForMilliseconds(100);;
486+
487+ //guillemotleft # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
488+ test.ViewSendCompositionKeys("<<");
489+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "«", "«");
490+ test.ViewSendCtrlA();
491+ test.ViewSendDelete();
492+ nux::SleepForMilliseconds(100);;
493+
494+ //SUPERSCRIPT THREE
495+ test.ViewSendCompositionKeys("^3");
496+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "³", "³");
497+ test.ViewSendCtrlA();
498+ test.ViewSendDelete();
499+ nux::SleepForMilliseconds(100);;
500+
501+ //MIDDLE DOT
502+ test.ViewSendCompositionKeys("..");
503+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "·", "·");
504+ test.ViewSendCtrlA();
505+ test.ViewSendDelete();
506+ nux::SleepForMilliseconds(100);;
507+
508+ //cedilla # CEDILLA
509+ test.ViewSendCompositionKeys(", ");
510+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¸", "¸");
511+ test.ViewSendCtrlA();
512+ test.ViewSendDelete();
513+ nux::SleepForMilliseconds(100);;
514+
515+ //VULGAR FRACTION THREE QUARTERS
516+ test.ViewSendCompositionKeys("34");
517+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¾", "¾");
518+ test.ViewSendCtrlA();
519+ test.ViewSendDelete();
520+ nux::SleepForMilliseconds(100);;
521+
522+ //questiondown # INVERTED QUESTION MARK
523+ test.ViewSendCompositionKeys("??");
524+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¿", "¿");
525+ test.ViewSendCtrlA();
526+ test.ViewSendDelete();
527+ nux::SleepForMilliseconds(100);;
528+
529+ //LATIN CAPITAL LETTER A WITH GRAVE
530+ test.ViewSendCompositionKeys("`A");
531+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "À", "À");
532+ test.ViewSendCtrlA();
533+ test.ViewSendDelete();
534+ nux::SleepForMilliseconds(100);;
535+
536+ //LATIN CAPITAL LETTER A WITH ACUTE
537+ test.ViewSendCompositionKeys("'A");
538+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Á", "Á");
539+ test.ViewSendCtrlA();
540+ test.ViewSendDelete();
541+ nux::SleepForMilliseconds(100);;
542+
543+ //LATIN CAPITAL LETTER A WITH CIRCUMFLEX
544+ test.ViewSendCompositionKeys("^A");
545+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Â", "Â");
546+ test.ViewSendCtrlA();
547+ test.ViewSendDelete();
548+ nux::SleepForMilliseconds(100);;
549+
550+ //LATIN CAPITAL LETTER A WITH TILDE
551+ test.ViewSendCompositionKeys("~A");
552+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ã", "Ã");
553+ test.ViewSendCtrlA();
554+ test.ViewSendDelete();
555+ nux::SleepForMilliseconds(100);;
556+
557+ //LATIN CAPITAL LETTER A WITH DIAERESIS
558+ test.ViewSendCompositionKeys("\"A");
559+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ä", "Ä");
560+ test.ViewSendCtrlA();
561+ test.ViewSendDelete();
562+ nux::SleepForMilliseconds(100);;
563+
564+ //LATIN CAPITAL LETTER A WITH RING ABOVE
565+ test.ViewSendCompositionKeys("oA");
566+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Å", "Å");
567+ test.ViewSendCtrlA();
568+ test.ViewSendDelete();
569+ nux::SleepForMilliseconds(100);;
570+
571+ //AE # LATIN CAPITAL LETTER AE
572+ test.ViewSendCompositionKeys("AE");
573+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Æ", "Æ");
574+ test.ViewSendCtrlA();
575+ test.ViewSendDelete();
576+ nux::SleepForMilliseconds(100);;
577+
578+ //ssharp # LATIN SMALL LETTER SHARP S
579+ test.ViewSendCompositionKeys("ss");
580+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ß", "ß");
581+ test.ViewSendCtrlA();
582+ test.ViewSendDelete();
583+ nux::SleepForMilliseconds(100);;
584+
585+ //LATIN SMALL LETTER A WITH GRAVE
586+ test.ViewSendCompositionKeys("`a");
587+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "à", "à");
588+ test.ViewSendCtrlA();
589+ test.ViewSendDelete();
590+ nux::SleepForMilliseconds(100);;
591+
592+ //LATIN SMALL LETTER A WITH ACUTE
593+ test.ViewSendCompositionKeys("'a");
594+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "á", "á");
595+ test.ViewSendCtrlA();
596+ test.ViewSendDelete();
597+ nux::SleepForMilliseconds(100);;
598+
599+ //LATIN SMALL LETTER A WITH CIRCUMFLEX
600+ test.ViewSendCompositionKeys("^a");
601+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "â", "â");
602+ test.ViewSendCtrlA();
603+ test.ViewSendDelete();
604+ nux::SleepForMilliseconds(100);;
605+
606+ //LATIN SMALL LETTER A WITH TILDE
607+ test.ViewSendCompositionKeys("~a");
608+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ã", "ã");
609+ test.ViewSendCtrlA();
610+ test.ViewSendDelete();
611+ nux::SleepForMilliseconds(100);;
612+
613+ //LATIN SMALL LETTER A WITH DIAERESIS
614+ test.ViewSendCompositionKeys("\"a");
615+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ä", "ä");
616+ test.ViewSendCtrlA();
617+ test.ViewSendDelete();
618+ nux::SleepForMilliseconds(100);;
619+
620+ //LATIN SMALL LETTER A WITH RING ABOVE
621+ test.ViewSendCompositionKeys("oa");
622+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "å", "å");
623+ test.ViewSendCtrlA();
624+ test.ViewSendDelete();
625+ nux::SleepForMilliseconds(100);;
626+
627+ //ae # LATIN SMALL LETTER AE
628+ test.ViewSendCompositionKeys("ae");
629+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "æ", "æ");
630+ test.ViewSendCtrlA();
631+ test.ViewSendDelete();
632+ nux::SleepForMilliseconds(100);;
633+
634+ //DIVISION SIGN
635+ test.ViewSendCompositionKeys("-:");
636+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "÷", "÷");
637+ test.ViewSendCtrlA();
638+ test.ViewSendDelete();
639+ nux::SleepForMilliseconds(100);;
640+
641+ //LATIN CAPITAL LETTER A WITH OGONEK
642+ test.ViewSendCompositionKeys(";A");
643+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ą", "Ą");
644+ test.ViewSendCtrlA();
645+ test.ViewSendDelete();
646+ nux::SleepForMilliseconds(100);;
647+
648+ //LATIN SMALL LETTER A WITH OGONEK
649+ test.ViewSendCompositionKeys(";a");
650+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ą", "ą");
651+ test.ViewSendCtrlA();
652+ test.ViewSendDelete();
653+ nux::SleepForMilliseconds(100);;
654+
655+ //LATIN CAPITAL LETTER A WITH CARON
656+ test.ViewSendCompositionKeys("cA");
657+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ǎ", "Ǎ");
658+ test.ViewSendCtrlA();
659+ test.ViewSendDelete();
660+ nux::SleepForMilliseconds(100);
661+
662+ //EN DASH
663+ test.ViewSendCompositionKeys("--.");
664+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "–", "–");
665+ test.ViewSendCtrlA();
666+ test.ViewSendDelete();
667+ nux::SleepForMilliseconds(100);
668+
669+ //RIGHT SINGLE QUOTATION MARK
670+ test.ViewSendCompositionKeys(">'");
671+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "’", "’");
672+ test.ViewSendCtrlA();
673+ test.ViewSendDelete();
674+ nux::SleepForMilliseconds(100);
675+
676+ //LEFT DOUBLE QUOTATION MARK
677+ test.ViewSendCompositionKeys("<\"");
678+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "“", "“");
679+ test.ViewSendCtrlA();
680+ test.ViewSendDelete();
681+ nux::SleepForMilliseconds(100);
682+
683+ //RIGHT DOUBLE QUOTATION MARK
684+ test.ViewSendCompositionKeys("\">");
685+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "”", "”");
686+ test.ViewSendCtrlA();
687+ test.ViewSendDelete();
688+ nux::SleepForMilliseconds(100);
689+
690+ //DOUBLE LOW-9 QUOTATION MARK
691+ test.ViewSendCompositionKeys("\",");
692+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "„", "„");
693+ test.ViewSendCtrlA();
694+ test.ViewSendDelete();
695+ nux::SleepForMilliseconds(100);
696+
697+ //PER MILLE SIGN
698+ test.ViewSendCompositionKeys("%o");
699+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "‰", "‰");
700+ test.ViewSendCtrlA();
701+ test.ViewSendDelete();
702+ nux::SleepForMilliseconds(100);
703+
704+ //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
705+ test.ViewSendCompositionKeys(".>");
706+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "›", "›");
707+ test.ViewSendCtrlA();
708+ test.ViewSendDelete();
709+ nux::SleepForMilliseconds(100);
710+
711+ //EuroSign # EURO SIGN
712+ test.ViewSendCompositionKeys("=E");
713+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "€", "€");
714+ test.ViewSendCtrlA();
715+ test.ViewSendDelete();
716+ nux::SleepForMilliseconds(100);
717+
718+ //REVERSED DOUBLE PRIME QUOTATION MARK
719+ test.ViewSendCompositionKeys("\"\\");
720+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "〝", "〝");
721+ test.ViewSendCtrlA();
722+ test.ViewSendDelete();
723+ nux::SleepForMilliseconds(100);
724+ }
725+ else
726+ {
727+ test.WarnCompositionKeysNotSupported();
728+ }
729
730 if (test.WhenDoneTerminateProgram())
731 {
732
733=== modified file 'tests/xtest-text-entry-deadkeys.cpp'
734--- tests/xtest-text-entry-deadkeys.cpp 2012-12-04 01:10:25 +0000
735+++ tests/xtest-text-entry-deadkeys.cpp 2013-02-01 11:15:39 +0000
736@@ -113,309 +113,316 @@
737
738 test.ViewSendMouseClick(0, 1);
739
740- test.ViewSendCompositionKeys("`o");
741- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ò", "ò");
742-
743- test.ViewSendCompositionKeys("~o");
744- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõ", "òõ");
745-
746- test.ViewSendCompositionKeys("^o");
747- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô", "òõô");
748-
749- test.ViewSendCompositionKeys("c=");
750- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€", "òõô€");
751-
752- test.ViewSendCompositionKeys("oc");
753- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©", "òõô€©");
754-
755- test.ViewSendCompositionKeys("\"w");
756- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©ẅ", "òõô€©ẅ");
757-
758- test.ViewSendCompositionKeys("'S");
759- test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©ẅŚ", "òõô€©ẅŚ");
760- test.ViewSendCtrlA();
761- test.ViewSendDelete();
762-
763- nux::SleepForMilliseconds(100);
764- //exclamdown # INVERTED EXCLAMATION MARK
765- test.ViewSendCompositionKeys("!!");
766- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¡", "¡");
767- test.ViewSendCtrlA();
768- test.ViewSendDelete();
769- nux::SleepForMilliseconds(100);;
770-
771- //CENT SIGN
772- test.ViewSendCompositionKeys("|c");
773- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¢", "¢");
774- test.ViewSendCtrlA();
775- test.ViewSendDelete();
776- nux::SleepForMilliseconds(100);;
777-
778- //POUND SIGN
779- test.ViewSendCompositionKeys("-L");
780- test.TestReportMsg(test_textentry->text_entry_->GetText() == "£", "£");
781- test.ViewSendCtrlA();
782- test.ViewSendDelete();
783- nux::SleepForMilliseconds(100);;
784-
785- //currency # CURRENCY SIGN
786- test.ViewSendCompositionKeys("xo");
787- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¤", "¤");
788- test.ViewSendCtrlA();
789- test.ViewSendDelete();
790- nux::SleepForMilliseconds(100);;
791-
792- //yen # YEN SIGN
793- test.ViewSendCompositionKeys("Y=");
794- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¥", "¥");
795- test.ViewSendCtrlA();
796- test.ViewSendDelete();
797- nux::SleepForMilliseconds(100);;
798-
799- //FEMININE ORDINAL INDICATOR
800- test.ViewSendCompositionKeys("^_a");
801- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ª", "ª");
802- test.ViewSendCtrlA();
803- test.ViewSendDelete();
804- nux::SleepForMilliseconds(100);;
805-
806- //guillemotleft # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
807- test.ViewSendCompositionKeys("<<");
808- test.TestReportMsg(test_textentry->text_entry_->GetText() == "«", "«");
809- test.ViewSendCtrlA();
810- test.ViewSendDelete();
811- nux::SleepForMilliseconds(100);;
812-
813- //SUPERSCRIPT THREE
814- test.ViewSendCompositionKeys("^3");
815- test.TestReportMsg(test_textentry->text_entry_->GetText() == "³", "³");
816- test.ViewSendCtrlA();
817- test.ViewSendDelete();
818- nux::SleepForMilliseconds(100);;
819-
820- //MIDDLE DOT
821- test.ViewSendCompositionKeys("..");
822- test.TestReportMsg(test_textentry->text_entry_->GetText() == "·", "·");
823- test.ViewSendCtrlA();
824- test.ViewSendDelete();
825- nux::SleepForMilliseconds(100);;
826-
827- //cedilla # CEDILLA
828- test.ViewSendCompositionKeys(", ");
829- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¸", "¸");
830- test.ViewSendCtrlA();
831- test.ViewSendDelete();
832- nux::SleepForMilliseconds(100);;
833-
834- //VULGAR FRACTION THREE QUARTERS
835- test.ViewSendCompositionKeys("34");
836- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¾", "¾");
837- test.ViewSendCtrlA();
838- test.ViewSendDelete();
839- nux::SleepForMilliseconds(100);;
840-
841- //questiondown # INVERTED QUESTION MARK
842- test.ViewSendCompositionKeys("??");
843- test.TestReportMsg(test_textentry->text_entry_->GetText() == "¿", "¿");
844- test.ViewSendCtrlA();
845- test.ViewSendDelete();
846- nux::SleepForMilliseconds(100);;
847-
848- //LATIN CAPITAL LETTER A WITH GRAVE
849- test.ViewSendCompositionKeys("`A");
850- test.TestReportMsg(test_textentry->text_entry_->GetText() == "À", "À");
851- test.ViewSendCtrlA();
852- test.ViewSendDelete();
853- nux::SleepForMilliseconds(100);;
854-
855- //LATIN CAPITAL LETTER A WITH ACUTE
856- test.ViewSendCompositionKeys("'A");
857- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Á", "Á");
858- test.ViewSendCtrlA();
859- test.ViewSendDelete();
860- nux::SleepForMilliseconds(100);;
861-
862- //LATIN CAPITAL LETTER A WITH CIRCUMFLEX
863- test.ViewSendCompositionKeys("^A");
864- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Â", "Â");
865- test.ViewSendCtrlA();
866- test.ViewSendDelete();
867- nux::SleepForMilliseconds(100);;
868-
869- //LATIN CAPITAL LETTER A WITH TILDE
870- test.ViewSendCompositionKeys("~A");
871- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ã", "Ã");
872- test.ViewSendCtrlA();
873- test.ViewSendDelete();
874- nux::SleepForMilliseconds(100);;
875-
876- //LATIN CAPITAL LETTER A WITH DIAERESIS
877- test.ViewSendCompositionKeys("\"A");
878- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ä", "Ä");
879- test.ViewSendCtrlA();
880- test.ViewSendDelete();
881- nux::SleepForMilliseconds(100);;
882-
883- //LATIN CAPITAL LETTER A WITH RING ABOVE
884- test.ViewSendCompositionKeys("oA");
885- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Å", "Å");
886- test.ViewSendCtrlA();
887- test.ViewSendDelete();
888- nux::SleepForMilliseconds(100);;
889-
890- //AE # LATIN CAPITAL LETTER AE
891- test.ViewSendCompositionKeys("AE");
892- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Æ", "Æ");
893- test.ViewSendCtrlA();
894- test.ViewSendDelete();
895- nux::SleepForMilliseconds(100);;
896-
897- //ssharp # LATIN SMALL LETTER SHARP S
898- test.ViewSendCompositionKeys("ss");
899- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ß", "ß");
900- test.ViewSendCtrlA();
901- test.ViewSendDelete();
902- nux::SleepForMilliseconds(100);;
903-
904- //LATIN SMALL LETTER A WITH GRAVE
905- test.ViewSendCompositionKeys("`a");
906- test.TestReportMsg(test_textentry->text_entry_->GetText() == "à", "à");
907- test.ViewSendCtrlA();
908- test.ViewSendDelete();
909- nux::SleepForMilliseconds(100);;
910-
911- //LATIN SMALL LETTER A WITH ACUTE
912- test.ViewSendCompositionKeys("'a");
913- test.TestReportMsg(test_textentry->text_entry_->GetText() == "á", "á");
914- test.ViewSendCtrlA();
915- test.ViewSendDelete();
916- nux::SleepForMilliseconds(100);;
917-
918- //LATIN SMALL LETTER A WITH CIRCUMFLEX
919- test.ViewSendCompositionKeys("^a");
920- test.TestReportMsg(test_textentry->text_entry_->GetText() == "â", "â");
921- test.ViewSendCtrlA();
922- test.ViewSendDelete();
923- nux::SleepForMilliseconds(100);;
924-
925- //LATIN SMALL LETTER A WITH TILDE
926- test.ViewSendCompositionKeys("~a");
927- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ã", "ã");
928- test.ViewSendCtrlA();
929- test.ViewSendDelete();
930- nux::SleepForMilliseconds(100);;
931-
932- //LATIN SMALL LETTER A WITH DIAERESIS
933- test.ViewSendCompositionKeys("\"a");
934- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ä", "ä");
935- test.ViewSendCtrlA();
936- test.ViewSendDelete();
937- nux::SleepForMilliseconds(100);;
938-
939- //LATIN SMALL LETTER A WITH RING ABOVE
940- test.ViewSendCompositionKeys("oa");
941- test.TestReportMsg(test_textentry->text_entry_->GetText() == "å", "å");
942- test.ViewSendCtrlA();
943- test.ViewSendDelete();
944- nux::SleepForMilliseconds(100);;
945-
946- //ae # LATIN SMALL LETTER AE
947- test.ViewSendCompositionKeys("ae");
948- test.TestReportMsg(test_textentry->text_entry_->GetText() == "æ", "æ");
949- test.ViewSendCtrlA();
950- test.ViewSendDelete();
951- nux::SleepForMilliseconds(100);;
952-
953- //DIVISION SIGN
954- test.ViewSendCompositionKeys("-:");
955- test.TestReportMsg(test_textentry->text_entry_->GetText() == "÷", "÷");
956- test.ViewSendCtrlA();
957- test.ViewSendDelete();
958- nux::SleepForMilliseconds(100);;
959-
960- //LATIN CAPITAL LETTER A WITH OGONEK
961- test.ViewSendCompositionKeys(";A");
962- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ą", "Ą");
963- test.ViewSendCtrlA();
964- test.ViewSendDelete();
965- nux::SleepForMilliseconds(100);;
966-
967- //LATIN SMALL LETTER A WITH OGONEK
968- test.ViewSendCompositionKeys(";a");
969- test.TestReportMsg(test_textentry->text_entry_->GetText() == "ą", "ą");
970- test.ViewSendCtrlA();
971- test.ViewSendDelete();
972- nux::SleepForMilliseconds(100);;
973-
974- //LATIN CAPITAL LETTER A WITH CARON
975- test.ViewSendCompositionKeys("cA");
976- test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ǎ", "Ǎ");
977- test.ViewSendCtrlA();
978- test.ViewSendDelete();
979- nux::SleepForMilliseconds(100);
980-
981- //EN DASH
982- test.ViewSendCompositionKeys("--.");
983- test.TestReportMsg(test_textentry->text_entry_->GetText() == "–", "–");
984- test.ViewSendCtrlA();
985- test.ViewSendDelete();
986- nux::SleepForMilliseconds(100);
987-
988- //RIGHT SINGLE QUOTATION MARK
989- test.ViewSendCompositionKeys(">'");
990- test.TestReportMsg(test_textentry->text_entry_->GetText() == "’", "’");
991- test.ViewSendCtrlA();
992- test.ViewSendDelete();
993- nux::SleepForMilliseconds(100);
994-
995- //LEFT DOUBLE QUOTATION MARK
996- test.ViewSendCompositionKeys("<\"");
997- test.TestReportMsg(test_textentry->text_entry_->GetText() == "“", "“");
998- test.ViewSendCtrlA();
999- test.ViewSendDelete();
1000- nux::SleepForMilliseconds(100);
1001-
1002- //RIGHT DOUBLE QUOTATION MARK
1003- test.ViewSendCompositionKeys("\">");
1004- test.TestReportMsg(test_textentry->text_entry_->GetText() == "”", "”");
1005- test.ViewSendCtrlA();
1006- test.ViewSendDelete();
1007- nux::SleepForMilliseconds(100);
1008-
1009- //DOUBLE LOW-9 QUOTATION MARK
1010- test.ViewSendCompositionKeys("\",");
1011- test.TestReportMsg(test_textentry->text_entry_->GetText() == "„", "„");
1012- test.ViewSendCtrlA();
1013- test.ViewSendDelete();
1014- nux::SleepForMilliseconds(100);
1015-
1016- //PER MILLE SIGN
1017- test.ViewSendCompositionKeys("%o");
1018- test.TestReportMsg(test_textentry->text_entry_->GetText() == "‰", "‰");
1019- test.ViewSendCtrlA();
1020- test.ViewSendDelete();
1021- nux::SleepForMilliseconds(100);
1022-
1023- //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
1024- test.ViewSendCompositionKeys(".>");
1025- test.TestReportMsg(test_textentry->text_entry_->GetText() == "›", "›");
1026- test.ViewSendCtrlA();
1027- test.ViewSendDelete();
1028- nux::SleepForMilliseconds(100);
1029-
1030- //EuroSign # EURO SIGN
1031- test.ViewSendCompositionKeys("=E");
1032- test.TestReportMsg(test_textentry->text_entry_->GetText() == "€", "€");
1033- test.ViewSendCtrlA();
1034- test.ViewSendDelete();
1035- nux::SleepForMilliseconds(100);
1036-
1037- //REVERSED DOUBLE PRIME QUOTATION MARK
1038- test.ViewSendCompositionKeys("\"\\");
1039- test.TestReportMsg(test_textentry->text_entry_->GetText() == "〝", "〝");
1040- test.ViewSendCtrlA();
1041- test.ViewSendDelete();
1042- nux::SleepForMilliseconds(100);
1043+ if (test.CompositionKeysSupported())
1044+ {
1045+ test.ViewSendCompositionKeys("`o");
1046+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ò", "ò");
1047+
1048+ test.ViewSendCompositionKeys("~o");
1049+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõ", "òõ");
1050+
1051+ test.ViewSendCompositionKeys("^o");
1052+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô", "òõô");
1053+
1054+ test.ViewSendCompositionKeys("c=");
1055+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€", "òõô€");
1056+
1057+ test.ViewSendCompositionKeys("oc");
1058+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©", "òõô€©");
1059+
1060+ test.ViewSendCompositionKeys("\"w");
1061+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©ẅ", "òõô€©ẅ");
1062+
1063+ test.ViewSendCompositionKeys("'S");
1064+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "òõô€©ẅŚ", "òõô€©ẅŚ");
1065+ test.ViewSendCtrlA();
1066+ test.ViewSendDelete();
1067+
1068+ nux::SleepForMilliseconds(100);
1069+ //exclamdown # INVERTED EXCLAMATION MARK
1070+ test.ViewSendCompositionKeys("!!");
1071+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¡", "¡");
1072+ test.ViewSendCtrlA();
1073+ test.ViewSendDelete();
1074+ nux::SleepForMilliseconds(100);;
1075+
1076+ //CENT SIGN
1077+ test.ViewSendCompositionKeys("|c");
1078+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¢", "¢");
1079+ test.ViewSendCtrlA();
1080+ test.ViewSendDelete();
1081+ nux::SleepForMilliseconds(100);;
1082+
1083+ //POUND SIGN
1084+ test.ViewSendCompositionKeys("-L");
1085+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "£", "£");
1086+ test.ViewSendCtrlA();
1087+ test.ViewSendDelete();
1088+ nux::SleepForMilliseconds(100);;
1089+
1090+ //currency # CURRENCY SIGN
1091+ test.ViewSendCompositionKeys("xo");
1092+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¤", "¤");
1093+ test.ViewSendCtrlA();
1094+ test.ViewSendDelete();
1095+ nux::SleepForMilliseconds(100);;
1096+
1097+ //yen # YEN SIGN
1098+ test.ViewSendCompositionKeys("Y=");
1099+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¥", "¥");
1100+ test.ViewSendCtrlA();
1101+ test.ViewSendDelete();
1102+ nux::SleepForMilliseconds(100);;
1103+
1104+ //FEMININE ORDINAL INDICATOR
1105+ test.ViewSendCompositionKeys("^_a");
1106+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ª", "ª");
1107+ test.ViewSendCtrlA();
1108+ test.ViewSendDelete();
1109+ nux::SleepForMilliseconds(100);;
1110+
1111+ //guillemotleft # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
1112+ test.ViewSendCompositionKeys("<<");
1113+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "«", "«");
1114+ test.ViewSendCtrlA();
1115+ test.ViewSendDelete();
1116+ nux::SleepForMilliseconds(100);;
1117+
1118+ //SUPERSCRIPT THREE
1119+ test.ViewSendCompositionKeys("^3");
1120+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "³", "³");
1121+ test.ViewSendCtrlA();
1122+ test.ViewSendDelete();
1123+ nux::SleepForMilliseconds(100);;
1124+
1125+ //MIDDLE DOT
1126+ test.ViewSendCompositionKeys("..");
1127+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "·", "·");
1128+ test.ViewSendCtrlA();
1129+ test.ViewSendDelete();
1130+ nux::SleepForMilliseconds(100);;
1131+
1132+ //cedilla # CEDILLA
1133+ test.ViewSendCompositionKeys(", ");
1134+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¸", "¸");
1135+ test.ViewSendCtrlA();
1136+ test.ViewSendDelete();
1137+ nux::SleepForMilliseconds(100);;
1138+
1139+ //VULGAR FRACTION THREE QUARTERS
1140+ test.ViewSendCompositionKeys("34");
1141+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¾", "¾");
1142+ test.ViewSendCtrlA();
1143+ test.ViewSendDelete();
1144+ nux::SleepForMilliseconds(100);;
1145+
1146+ //questiondown # INVERTED QUESTION MARK
1147+ test.ViewSendCompositionKeys("??");
1148+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "¿", "¿");
1149+ test.ViewSendCtrlA();
1150+ test.ViewSendDelete();
1151+ nux::SleepForMilliseconds(100);;
1152+
1153+ //LATIN CAPITAL LETTER A WITH GRAVE
1154+ test.ViewSendCompositionKeys("`A");
1155+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "À", "À");
1156+ test.ViewSendCtrlA();
1157+ test.ViewSendDelete();
1158+ nux::SleepForMilliseconds(100);;
1159+
1160+ //LATIN CAPITAL LETTER A WITH ACUTE
1161+ test.ViewSendCompositionKeys("'A");
1162+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Á", "Á");
1163+ test.ViewSendCtrlA();
1164+ test.ViewSendDelete();
1165+ nux::SleepForMilliseconds(100);;
1166+
1167+ //LATIN CAPITAL LETTER A WITH CIRCUMFLEX
1168+ test.ViewSendCompositionKeys("^A");
1169+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Â", "Â");
1170+ test.ViewSendCtrlA();
1171+ test.ViewSendDelete();
1172+ nux::SleepForMilliseconds(100);;
1173+
1174+ //LATIN CAPITAL LETTER A WITH TILDE
1175+ test.ViewSendCompositionKeys("~A");
1176+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ã", "Ã");
1177+ test.ViewSendCtrlA();
1178+ test.ViewSendDelete();
1179+ nux::SleepForMilliseconds(100);;
1180+
1181+ //LATIN CAPITAL LETTER A WITH DIAERESIS
1182+ test.ViewSendCompositionKeys("\"A");
1183+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ä", "Ä");
1184+ test.ViewSendCtrlA();
1185+ test.ViewSendDelete();
1186+ nux::SleepForMilliseconds(100);;
1187+
1188+ //LATIN CAPITAL LETTER A WITH RING ABOVE
1189+ test.ViewSendCompositionKeys("oA");
1190+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Å", "Å");
1191+ test.ViewSendCtrlA();
1192+ test.ViewSendDelete();
1193+ nux::SleepForMilliseconds(100);;
1194+
1195+ //AE # LATIN CAPITAL LETTER AE
1196+ test.ViewSendCompositionKeys("AE");
1197+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Æ", "Æ");
1198+ test.ViewSendCtrlA();
1199+ test.ViewSendDelete();
1200+ nux::SleepForMilliseconds(100);;
1201+
1202+ //ssharp # LATIN SMALL LETTER SHARP S
1203+ test.ViewSendCompositionKeys("ss");
1204+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ß", "ß");
1205+ test.ViewSendCtrlA();
1206+ test.ViewSendDelete();
1207+ nux::SleepForMilliseconds(100);;
1208+
1209+ //LATIN SMALL LETTER A WITH GRAVE
1210+ test.ViewSendCompositionKeys("`a");
1211+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "à", "à");
1212+ test.ViewSendCtrlA();
1213+ test.ViewSendDelete();
1214+ nux::SleepForMilliseconds(100);;
1215+
1216+ //LATIN SMALL LETTER A WITH ACUTE
1217+ test.ViewSendCompositionKeys("'a");
1218+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "á", "á");
1219+ test.ViewSendCtrlA();
1220+ test.ViewSendDelete();
1221+ nux::SleepForMilliseconds(100);;
1222+
1223+ //LATIN SMALL LETTER A WITH CIRCUMFLEX
1224+ test.ViewSendCompositionKeys("^a");
1225+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "â", "â");
1226+ test.ViewSendCtrlA();
1227+ test.ViewSendDelete();
1228+ nux::SleepForMilliseconds(100);;
1229+
1230+ //LATIN SMALL LETTER A WITH TILDE
1231+ test.ViewSendCompositionKeys("~a");
1232+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ã", "ã");
1233+ test.ViewSendCtrlA();
1234+ test.ViewSendDelete();
1235+ nux::SleepForMilliseconds(100);;
1236+
1237+ //LATIN SMALL LETTER A WITH DIAERESIS
1238+ test.ViewSendCompositionKeys("\"a");
1239+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ä", "ä");
1240+ test.ViewSendCtrlA();
1241+ test.ViewSendDelete();
1242+ nux::SleepForMilliseconds(100);;
1243+
1244+ //LATIN SMALL LETTER A WITH RING ABOVE
1245+ test.ViewSendCompositionKeys("oa");
1246+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "å", "å");
1247+ test.ViewSendCtrlA();
1248+ test.ViewSendDelete();
1249+ nux::SleepForMilliseconds(100);;
1250+
1251+ //ae # LATIN SMALL LETTER AE
1252+ test.ViewSendCompositionKeys("ae");
1253+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "æ", "æ");
1254+ test.ViewSendCtrlA();
1255+ test.ViewSendDelete();
1256+ nux::SleepForMilliseconds(100);;
1257+
1258+ //DIVISION SIGN
1259+ test.ViewSendCompositionKeys("-:");
1260+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "÷", "÷");
1261+ test.ViewSendCtrlA();
1262+ test.ViewSendDelete();
1263+ nux::SleepForMilliseconds(100);;
1264+
1265+ //LATIN CAPITAL LETTER A WITH OGONEK
1266+ test.ViewSendCompositionKeys(";A");
1267+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ą", "Ą");
1268+ test.ViewSendCtrlA();
1269+ test.ViewSendDelete();
1270+ nux::SleepForMilliseconds(100);;
1271+
1272+ //LATIN SMALL LETTER A WITH OGONEK
1273+ test.ViewSendCompositionKeys(";a");
1274+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "ą", "ą");
1275+ test.ViewSendCtrlA();
1276+ test.ViewSendDelete();
1277+ nux::SleepForMilliseconds(100);;
1278+
1279+ //LATIN CAPITAL LETTER A WITH CARON
1280+ test.ViewSendCompositionKeys("cA");
1281+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "Ǎ", "Ǎ");
1282+ test.ViewSendCtrlA();
1283+ test.ViewSendDelete();
1284+ nux::SleepForMilliseconds(100);
1285+
1286+ //EN DASH
1287+ test.ViewSendCompositionKeys("--.");
1288+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "–", "–");
1289+ test.ViewSendCtrlA();
1290+ test.ViewSendDelete();
1291+ nux::SleepForMilliseconds(100);
1292+
1293+ //RIGHT SINGLE QUOTATION MARK
1294+ test.ViewSendCompositionKeys(">'");
1295+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "’", "’");
1296+ test.ViewSendCtrlA();
1297+ test.ViewSendDelete();
1298+ nux::SleepForMilliseconds(100);
1299+
1300+ //LEFT DOUBLE QUOTATION MARK
1301+ test.ViewSendCompositionKeys("<\"");
1302+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "“", "“");
1303+ test.ViewSendCtrlA();
1304+ test.ViewSendDelete();
1305+ nux::SleepForMilliseconds(100);
1306+
1307+ //RIGHT DOUBLE QUOTATION MARK
1308+ test.ViewSendCompositionKeys("\">");
1309+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "”", "”");
1310+ test.ViewSendCtrlA();
1311+ test.ViewSendDelete();
1312+ nux::SleepForMilliseconds(100);
1313+
1314+ //DOUBLE LOW-9 QUOTATION MARK
1315+ test.ViewSendCompositionKeys("\",");
1316+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "„", "„");
1317+ test.ViewSendCtrlA();
1318+ test.ViewSendDelete();
1319+ nux::SleepForMilliseconds(100);
1320+
1321+ //PER MILLE SIGN
1322+ test.ViewSendCompositionKeys("%o");
1323+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "‰", "‰");
1324+ test.ViewSendCtrlA();
1325+ test.ViewSendDelete();
1326+ nux::SleepForMilliseconds(100);
1327+
1328+ //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
1329+ test.ViewSendCompositionKeys(".>");
1330+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "›", "›");
1331+ test.ViewSendCtrlA();
1332+ test.ViewSendDelete();
1333+ nux::SleepForMilliseconds(100);
1334+
1335+ //EuroSign # EURO SIGN
1336+ test.ViewSendCompositionKeys("=E");
1337+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "€", "€");
1338+ test.ViewSendCtrlA();
1339+ test.ViewSendDelete();
1340+ nux::SleepForMilliseconds(100);
1341+
1342+ //REVERSED DOUBLE PRIME QUOTATION MARK
1343+ test.ViewSendCompositionKeys("\"\\");
1344+ test.TestReportMsg(test_textentry->text_entry_->GetText() == "〝", "〝");
1345+ test.ViewSendCtrlA();
1346+ test.ViewSendDelete();
1347+ nux::SleepForMilliseconds(100);
1348+ }
1349+ else
1350+ {
1351+ test.WarnCompositionKeysNotSupported();
1352+ }
1353
1354 if (test.WhenDoneTerminateProgram())
1355 {

Subscribers

People subscribed via source and target branches