@@ -14,6 +14,8 @@ import org.wordpress.aztec.TestUtils.safeAppend
1414import org.wordpress.aztec.TestUtils.safeLength
1515import org.wordpress.aztec.source.SourceViewEditText
1616import org.wordpress.aztec.toolbar.AztecToolbar
17+ import org.wordpress.aztec.toolbar.ToolbarAction
18+ import org.wordpress.aztec.toolbar.ToolbarItems
1719
1820/* *
1921 * Testing heading behaviour.
@@ -28,8 +30,7 @@ class HeadingTest {
2830 lateinit var menuHeading1: MenuItem
2931 lateinit var menuHeading2: MenuItem
3032 lateinit var menuParagraph: MenuItem
31- // TODO: Uncomment when Preformat is to be added back as a feature
32- // lateinit var menuPreformat: MenuItem
33+ lateinit var buttonPreformat: ToggleButton
3334
3435 /* *
3536 * Initialize variables.
@@ -42,14 +43,29 @@ class HeadingTest {
4243 sourceText = SourceViewEditText (activity)
4344 sourceText.setCalypsoMode(false )
4445 toolbar = AztecToolbar (activity)
46+ toolbar.setToolbarItems(ToolbarItems .BasicLayout (
47+ ToolbarAction .HEADING ,
48+ ToolbarAction .PREFORMAT ,
49+ ToolbarAction .LIST ,
50+ ToolbarAction .QUOTE ,
51+ ToolbarAction .BOLD ,
52+ ToolbarAction .ITALIC ,
53+ ToolbarAction .LINK ,
54+ ToolbarAction .UNDERLINE ,
55+ ToolbarAction .STRIKETHROUGH ,
56+ ToolbarAction .ALIGN_LEFT ,
57+ ToolbarAction .ALIGN_CENTER ,
58+ ToolbarAction .ALIGN_RIGHT ,
59+ ToolbarAction .HORIZONTAL_RULE ,
60+ ToolbarAction .HTML
61+ ))
4562 toolbar.setEditor(editText, sourceText)
4663 buttonQuote = toolbar.findViewById<ToggleButton >(R .id.format_bar_button_quote)
4764 menuHeading = toolbar.getHeadingMenu() as PopupMenu
4865 menuHeading1 = menuHeading.menu.getItem(1 )
4966 menuHeading2 = menuHeading.menu.getItem(2 )
5067 menuParagraph = menuHeading.menu.getItem(0 )
51- // TODO: Uncomment when Preformat is to be added back as a feature
52- // menuPreformat = menuHeading.menu.getItem(7)
68+ buttonPreformat = toolbar.findViewById<ToggleButton >(R .id.format_bar_button_pre)
5369 activity.setContentView(editText)
5470 }
5571
@@ -62,15 +78,14 @@ class HeadingTest {
6278 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
6379 }
6480
65- // TODO: Uncomment when Preformat is to be added back as a feature
66- // @Test
67- // @Throws(Exception::class)
68- // fun applyPreformatToSingleLine() {
69- // safeAppend(editText, "Preformat")
70- // toolbar.onMenuItemClick(menuPreformat)
71- // Assert.assertEquals("<pre>Preformat</pre>", editText.toHtml())
72- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
73- // }
81+ @Test
82+ @Throws(Exception ::class )
83+ fun applyPreformatToSingleLine () {
84+ safeAppend(editText, " Preformat" )
85+ buttonPreformat.performClick()
86+ Assert .assertEquals(" <pre>Preformat</pre>" , editText.toHtml())
87+ Assert .assertTrue(buttonPreformat.isChecked)
88+ }
7489
7590 @Test
7691 @Throws(Exception ::class )
@@ -82,16 +97,15 @@ class HeadingTest {
8297 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
8398 }
8499
85- // TODO: Uncomment when Preformat is to be added back as a feature
86- // @Test
87- // @Throws(Exception::class)
88- // fun applyPreformatToPartiallySelectedText() {
89- // safeAppend(editText, "Preformat")
90- // editText.setSelection(1, editText.length() - 2)
91- // toolbar.onMenuItemClick(menuPreformat)
92- // Assert.assertEquals("<pre>Preformat</pre>", editText.toHtml())
93- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
94- // }
100+ @Test
101+ @Throws(Exception ::class )
102+ fun applyPreformatToPartiallySelectedText () {
103+ safeAppend(editText, " Preformat" )
104+ editText.setSelection(1 , editText.length() - 2 )
105+ buttonPreformat.performClick()
106+ Assert .assertEquals(" <pre>Preformat</pre>" , editText.toHtml())
107+ Assert .assertTrue(buttonPreformat.isChecked)
108+ }
95109
96110 @Test
97111 @Throws(Exception ::class )
@@ -105,18 +119,17 @@ class HeadingTest {
105119 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
106120 }
107121
108- // TODO: Uncomment when Preformat is to be added back as a feature
109- // @Test
110- // @Throws(Exception::class)
111- // fun applyPreformatToSelectedMultilineText() {
112- // safeAppend(editText, "First line")
113- // safeAppend(editText, "\n")
114- // safeAppend(editText, "Second line")
115- // editText.setSelection(3, editText.length() - 3)
116- // toolbar.onMenuItemClick(menuPreformat)
117- // Assert.assertEquals("<pre>First line<br>Second line</pre>", editText.toHtml())
118- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
119- // }
122+ @Test
123+ @Throws(Exception ::class )
124+ fun applyPreformatToSelectedMultilineText () {
125+ safeAppend(editText, " First line" )
126+ safeAppend(editText, " \n " )
127+ safeAppend(editText, " Second line" )
128+ editText.setSelection(3 , editText.length() - 3 )
129+ buttonPreformat.performClick()
130+ Assert .assertEquals(" <pre>First line<br>Second line</pre>" , editText.toHtml())
131+ Assert .assertTrue(buttonPreformat.isChecked)
132+ }
120133
121134 @Test
122135 @Throws(Exception ::class )
@@ -128,16 +141,15 @@ class HeadingTest {
128141 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
129142 }
130143
131- // TODO: Uncomment when Preformat is to be added back as a feature
132- // @Test
133- // @Throws(Exception::class)
134- // fun prependTextToPreformat() {
135- // safeAppend(editText, "Preformat")
136- // toolbar.onMenuItemClick(menuPreformat)
137- // editText.text.insert(0, "inserted")
138- // Assert.assertEquals("<pre>insertedPreformat</pre>", editText.toHtml())
139- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
140- // }
144+ @Test
145+ @Throws(Exception ::class )
146+ fun prependTextToPreformat () {
147+ safeAppend(editText, " Preformat" )
148+ buttonPreformat.performClick()
149+ editText.text.insert(0 , " inserted" )
150+ Assert .assertEquals(" <pre>insertedPreformat</pre>" , editText.toHtml())
151+ Assert .assertTrue(buttonPreformat.isChecked)
152+ }
141153
142154 @Test
143155 @Throws(Exception ::class )
@@ -246,16 +258,15 @@ class HeadingTest {
246258 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_2 , toolbar.getSelectedHeadingMenuItem())
247259 }
248260
249- // TODO: Uncomment when Preformat is to be added back as a feature
250- // @Test
251- // @Throws(Exception::class)
252- // fun changeHeadingToPreformatOfSingleLine() {
253- // editText.fromHtml("<h1 foo=\"bar\">Text</h1>")
254- // toolbar.onMenuItemClick(menuHeading1)
255- // toolbar.onMenuItemClick(menuPreformat)
256- // Assert.assertEquals("<pre foo=\"bar\">Text</pre>", editText.toHtml())
257- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
258- // }
261+ @Test
262+ @Throws(Exception ::class )
263+ fun changeHeadingToPreformatOfSingleLine () {
264+ editText.fromHtml(" <h1 foo=\" bar\" >Text</h1>" )
265+ toolbar.onMenuItemClick(menuHeading1)
266+ buttonPreformat.performClick()
267+ Assert .assertEquals(" <pre foo=\" bar\" >Text</pre>" , editText.toHtml())
268+ Assert .assertTrue(buttonPreformat.isChecked)
269+ }
259270
260271 @Test
261272 @Throws(Exception ::class )
@@ -267,19 +278,18 @@ class HeadingTest {
267278 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_2 , toolbar.getSelectedHeadingMenuItem())
268279 }
269280
270- // TODO: Uncomment when Preformat is to be added back as a feature
271- // @Test
272- // @Throws(Exception::class)
273- // fun changeHeadingToParagraphToPreformatOfSelectedMultilineText() {
274- // editText.fromHtml("<h1 foo=\"bar\">Heading 1</h1><pre>Preformat</pre>")
275- // editText.setSelection(0, safeLength(editText))
276- // toolbar.onMenuItemClick(menuParagraph)
277- // Assert.assertEquals("Heading 1<br>Preformat", editText.toHtml())
278- // Assert.assertEquals(AztecTextFormat.FORMAT_PARAGRAPH, toolbar.getSelectedHeadingMenuItem())
279- // toolbar.onMenuItemClick(menuPreformat)
280- // Assert.assertEquals("<pre>Heading 1<br>Preformat</pre>", editText.toHtml())
281- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
282- // }
281+ @Test
282+ @Throws(Exception ::class )
283+ fun changeHeadingToParagraphToPreformatOfSelectedMultilineText () {
284+ editText.fromHtml(" <h1 foo=\" bar\" >Heading 1</h1><pre>Preformat</pre>" )
285+ editText.setSelection(0 , safeLength(editText))
286+ toolbar.onMenuItemClick(menuParagraph)
287+ Assert .assertEquals(" Heading 1<br>Preformat" , editText.toHtml())
288+ Assert .assertEquals(AztecTextFormat .FORMAT_PARAGRAPH , toolbar.getSelectedHeadingMenuItem())
289+ buttonPreformat.performClick()
290+ Assert .assertEquals(" <pre>Heading 1<br>Preformat</pre>" , editText.toHtml())
291+ Assert .assertTrue(buttonPreformat.isChecked)
292+ }
283293
284294 @Test
285295 @Throws(Exception ::class )
@@ -300,15 +310,14 @@ class HeadingTest {
300310 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
301311 }
302312
303- // TODO: Uncomment when Preformat is to be added back as a feature
304- // @Test
305- // @Throws(Exception::class)
306- // fun applyPreformatToTextInsideQuote() {
307- // editText.fromHtml("<blockquote>Quote</blockquote>")
308- // toolbar.onMenuItemClick(menuPreformat)
309- // Assert.assertEquals("<blockquote><pre>Quote</pre></blockquote>", editText.toHtml())
310- // Assert.assertEquals(AztecTextFormat.FORMAT_PARAGRAPH, toolbar.getSelectedHeadingMenuItem())
311- // }
313+ @Test
314+ @Throws(Exception ::class )
315+ fun applyPreformatToTextInsideQuote () {
316+ editText.fromHtml(" <blockquote>Quote</blockquote>" )
317+ buttonPreformat.performClick()
318+ Assert .assertEquals(" <pre><blockquote>Quote</blockquote></pre>" , editText.toHtml())
319+ Assert .assertEquals(AztecTextFormat .FORMAT_PARAGRAPH , toolbar.getSelectedHeadingMenuItem())
320+ }
312321
313322 @Test
314323 @Throws(Exception ::class )
@@ -335,15 +344,14 @@ class HeadingTest {
335344 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
336345 }
337346
338- // TODO: Uncomment when Preformat is to be added back as a feature
339- // @Test
340- // @Throws(Exception::class)
341- // fun applyPreformatToQuote() {
342- // editText.fromHtml("<blockquote>Quote</blockquote>")
343- // toolbar.onMenuItemClick(menuPreformat)
344- // Assert.assertEquals("<blockquote><pre>Quote</pre></blockquote>", editText.toHtml())
345- // Assert.assertEquals(AztecTextFormat.FORMAT_PARAGRAPH, toolbar.getSelectedHeadingMenuItem())
346- // }
347+ @Test
348+ @Throws(Exception ::class )
349+ fun applyPreformatToQuote () {
350+ editText.fromHtml(" <blockquote>Quote</blockquote>" )
351+ buttonPreformat.performClick()
352+ Assert .assertEquals(" <pre><blockquote>Quote</blockquote></pre>" , editText.toHtml())
353+ Assert .assertEquals(AztecTextFormat .FORMAT_PARAGRAPH , toolbar.getSelectedHeadingMenuItem())
354+ }
347355
348356 @Test
349357 @Throws(Exception ::class )
@@ -356,20 +364,19 @@ class HeadingTest {
356364 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
357365 }
358366
359- // TODO: Uncomment when Preformat is to be added back as a feature
360- // @Test
361- // @Throws(Exception::class)
362- // fun applyPreformatToTextSurroundedByLists() {
363- // editText.fromHtml("<ol><li>Ordered</li></ol>Preformat<ol><li>Ordered</li></ol>")
364- // val mark = editText.text.indexOf("format")
365- // editText.setSelection(mark)
366- // toolbar.onMenuItemClick(menuPreformat)
367- // Assert.assertEquals("<ol><li>Ordered</li></ol><pre>Preformat</pre><ol><li>Ordered</li></ol>", editText.toHtml())
368- // // TODO: Correct heading menu selection. This is incorrect. Preformat should be selected.
369- // // https://github.com/wordpress-mobile/AztecEditor-Android/issues/317
370- // // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
371- // Assert.assertEquals(AztecTextFormat.FORMAT_PARAGRAPH, toolbar.getSelectedHeadingMenuItem())
372- // }
367+ @Test
368+ @Throws(Exception ::class )
369+ fun applyPreformatToTextSurroundedByLists () {
370+ editText.fromHtml(" <ol><li>Ordered</li></ol>Preformat<ol><li>Ordered</li></ol>" )
371+ val mark = editText.text.indexOf(" format" )
372+ editText.setSelection(mark)
373+ buttonPreformat.performClick()
374+ Assert .assertEquals(" <ol><li>Ordered</li></ol><pre>Preformat</pre><ol><li>Ordered</li></ol>" , editText.toHtml())
375+ // TODO: Correct heading menu selection. This is incorrect. Preformat should be selected.
376+ // https://github.com/wordpress-mobile/AztecEditor-Android/issues/317
377+ // Assert.assertTrue(buttonPreformat.isChecked)
378+ Assert .assertEquals(AztecTextFormat .FORMAT_PARAGRAPH , toolbar.getSelectedHeadingMenuItem())
379+ }
373380
374381 @Test
375382 @Throws(Exception ::class )
@@ -382,17 +389,16 @@ class HeadingTest {
382389 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
383390 }
384391
385- // TODO: Uncomment when Preformat is to be added back as a feature
386- // @Test
387- // @Throws(Exception::class)
388- // fun applyPreformatToTextSurroundedByQuotes() {
389- // editText.fromHtml("<blockquote>Quote</blockquote>Preformat<blockquote>Quote</blockquote>")
390- // val mark = editText.text.indexOf("format")
391- // editText.setSelection(mark)
392- // toolbar.onMenuItemClick(menuPreformat)
393- // Assert.assertEquals("<blockquote>Quote</blockquote><pre>Preformat</pre><blockquote>Quote</blockquote>", editText.toHtml())
394- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
395- // }
392+ @Test
393+ @Throws(Exception ::class )
394+ fun applyPreformatToTextSurroundedByQuotes () {
395+ editText.fromHtml(" <blockquote>Quote</blockquote>Preformat<blockquote>Quote</blockquote>" )
396+ val mark = editText.text.indexOf(" format" )
397+ editText.setSelection(mark)
398+ buttonPreformat.performClick()
399+ Assert .assertEquals(" <blockquote>Quote</blockquote><pre>Preformat</pre><blockquote>Quote</blockquote>" , editText.toHtml())
400+ Assert .assertTrue(buttonPreformat.isChecked)
401+ }
396402
397403 @Test
398404 @Throws(Exception ::class )
@@ -496,10 +502,9 @@ class HeadingTest {
496502 editText.setSelection(cursor)
497503 Assert .assertEquals(AztecTextFormat .FORMAT_PARAGRAPH , toolbar.getSelectedHeadingMenuItem())
498504
499- // TODO: Uncomment when Preformat is to be added back as a feature
500- // cursor = editText.text.indexOf("format")
501- // editText.setSelection(cursor)
502- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
505+ cursor = editText.text.indexOf(" format" )
506+ editText.setSelection(cursor)
507+ Assert .assertTrue(buttonPreformat.isChecked)
503508 }
504509
505510 /* *
0 commit comments