@@ -15,6 +15,8 @@ import org.wordpress.aztec.TestUtils.safeAppend
1515import org.wordpress.aztec.TestUtils.safeLength
1616import org.wordpress.aztec.source.SourceViewEditText
1717import org.wordpress.aztec.toolbar.AztecToolbar
18+ import org.wordpress.aztec.toolbar.ToolbarAction
19+ import org.wordpress.aztec.toolbar.ToolbarItems
1820
1921/* *
2022 * Testing heading behaviour.
@@ -30,8 +32,7 @@ class HeadingTest {
3032 lateinit var menuHeading1: MenuItem
3133 lateinit var menuHeading2: MenuItem
3234 lateinit var menuParagraph: MenuItem
33- // TODO: Uncomment when Preformat is to be added back as a feature
34- // lateinit var menuPreformat: MenuItem
35+ lateinit var buttonPreformat: ToggleButton
3536
3637 /* *
3738 * Initialize variables.
@@ -45,13 +46,28 @@ class HeadingTest {
4546 sourceText.setCalypsoMode(false )
4647 toolbar = AztecToolbar (activity)
4748 toolbar.setEditor(editText, sourceText)
49+ toolbar.setToolbarItems(ToolbarItems .BasicLayout (
50+ ToolbarAction .HEADING ,
51+ ToolbarAction .LIST ,
52+ ToolbarAction .QUOTE ,
53+ ToolbarAction .BOLD ,
54+ ToolbarAction .ITALIC ,
55+ ToolbarAction .LINK ,
56+ ToolbarAction .UNDERLINE ,
57+ ToolbarAction .PREFORMAT ,
58+ ToolbarAction .STRIKETHROUGH ,
59+ ToolbarAction .ALIGN_LEFT ,
60+ ToolbarAction .ALIGN_CENTER ,
61+ ToolbarAction .ALIGN_RIGHT ,
62+ ToolbarAction .HORIZONTAL_RULE ,
63+ ToolbarAction .HTML
64+ ))
4865 buttonQuote = toolbar.findViewById<ToggleButton >(R .id.format_bar_button_quote)
4966 menuHeading = toolbar.getHeadingMenu() as PopupMenu
5067 menuHeading1 = menuHeading.menu.getItem(1 )
5168 menuHeading2 = menuHeading.menu.getItem(2 )
5269 menuParagraph = menuHeading.menu.getItem(0 )
53- // TODO: Uncomment when Preformat is to be added back as a feature
54- // menuPreformat = menuHeading.menu.getItem(7)
70+ buttonPreformat = toolbar.findViewById<ToggleButton >(R .id.format_bar_button_pre)
5571 activity.setContentView(editText)
5672 }
5773
@@ -64,15 +80,14 @@ class HeadingTest {
6480 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
6581 }
6682
67- // TODO: Uncomment when Preformat is to be added back as a feature
68- // @Test
69- // @Throws(Exception::class)
70- // fun applyPreformatToSingleLine() {
71- // safeAppend(editText, "Preformat")
72- // toolbar.onMenuItemClick(menuPreformat)
73- // Assert.assertEquals("<pre>Preformat</pre>", editText.toHtml())
74- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
75- // }
83+ @Test
84+ @Throws(Exception ::class )
85+ fun applyPreformatToSingleLine () {
86+ safeAppend(editText, " Preformat" )
87+ buttonPreformat.performClick()
88+ Assert .assertEquals(" <pre>Preformat</pre>" , editText.toHtml())
89+ Assert .assertTrue(buttonPreformat.isChecked)
90+ }
7691
7792 @Test
7893 @Throws(Exception ::class )
@@ -84,16 +99,15 @@ class HeadingTest {
8499 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
85100 }
86101
87- // TODO: Uncomment when Preformat is to be added back as a feature
88- // @Test
89- // @Throws(Exception::class)
90- // fun applyPreformatToPartiallySelectedText() {
91- // safeAppend(editText, "Preformat")
92- // editText.setSelection(1, editText.length() - 2)
93- // toolbar.onMenuItemClick(menuPreformat)
94- // Assert.assertEquals("<pre>Preformat</pre>", editText.toHtml())
95- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
96- // }
102+ @Test
103+ @Throws(Exception ::class )
104+ fun applyPreformatToPartiallySelectedText () {
105+ safeAppend(editText, " Preformat" )
106+ editText.setSelection(1 , editText.length() - 2 )
107+ buttonPreformat.performClick()
108+ Assert .assertEquals(" <pre>Preformat</pre>" , editText.toHtml())
109+ Assert .assertTrue(buttonPreformat.isChecked)
110+ }
97111
98112 @Test
99113 @Throws(Exception ::class )
@@ -107,18 +121,17 @@ class HeadingTest {
107121 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
108122 }
109123
110- // TODO: Uncomment when Preformat is to be added back as a feature
111- // @Test
112- // @Throws(Exception::class)
113- // fun applyPreformatToSelectedMultilineText() {
114- // safeAppend(editText, "First line")
115- // safeAppend(editText, "\n")
116- // safeAppend(editText, "Second line")
117- // editText.setSelection(3, editText.length() - 3)
118- // toolbar.onMenuItemClick(menuPreformat)
119- // Assert.assertEquals("<pre>First line<br>Second line</pre>", editText.toHtml())
120- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
121- // }
124+ @Test
125+ @Throws(Exception ::class )
126+ fun applyPreformatToSelectedMultilineText () {
127+ safeAppend(editText, " First line" )
128+ safeAppend(editText, " \n " )
129+ safeAppend(editText, " Second line" )
130+ editText.setSelection(3 , editText.length() - 3 )
131+ buttonPreformat.performClick()
132+ Assert .assertEquals(" <pre>First line<br>Second line</pre>" , editText.toHtml())
133+ Assert .assertTrue(buttonPreformat.isChecked)
134+ }
122135
123136 @Test
124137 @Throws(Exception ::class )
@@ -130,16 +143,15 @@ class HeadingTest {
130143 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
131144 }
132145
133- // TODO: Uncomment when Preformat is to be added back as a feature
134- // @Test
135- // @Throws(Exception::class)
136- // fun prependTextToPreformat() {
137- // safeAppend(editText, "Preformat")
138- // toolbar.onMenuItemClick(menuPreformat)
139- // editText.text.insert(0, "inserted")
140- // Assert.assertEquals("<pre>insertedPreformat</pre>", editText.toHtml())
141- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
142- // }
146+ @Test
147+ @Throws(Exception ::class )
148+ fun prependTextToPreformat () {
149+ safeAppend(editText, " Preformat" )
150+ buttonPreformat.performClick()
151+ editText.text.insert(0 , " inserted" )
152+ Assert .assertEquals(" <pre>insertedPreformat</pre>" , editText.toHtml())
153+ Assert .assertTrue(buttonPreformat.isChecked)
154+ }
143155
144156 @Test
145157 @Throws(Exception ::class )
@@ -248,16 +260,15 @@ class HeadingTest {
248260 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_2 , toolbar.getSelectedHeadingMenuItem())
249261 }
250262
251- // TODO: Uncomment when Preformat is to be added back as a feature
252- // @Test
253- // @Throws(Exception::class)
254- // fun changeHeadingToPreformatOfSingleLine() {
255- // editText.fromHtml("<h1 foo=\"bar\">Text</h1>")
256- // toolbar.onMenuItemClick(menuHeading1)
257- // toolbar.onMenuItemClick(menuPreformat)
258- // Assert.assertEquals("<pre foo=\"bar\">Text</pre>", editText.toHtml())
259- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
260- // }
263+ @Test
264+ @Throws(Exception ::class )
265+ fun changeHeadingToPreformatOfSingleLine () {
266+ editText.fromHtml(" <h1 foo=\" bar\" >Text</h1>" )
267+ toolbar.onMenuItemClick(menuHeading1)
268+ buttonPreformat.performClick()
269+ Assert .assertEquals(" <pre foo=\" bar\" >Text</pre>" , editText.toHtml())
270+ Assert .assertTrue(buttonPreformat.isChecked)
271+ }
261272
262273 @Test
263274 @Throws(Exception ::class )
@@ -269,19 +280,18 @@ class HeadingTest {
269280 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_2 , toolbar.getSelectedHeadingMenuItem())
270281 }
271282
272- // TODO: Uncomment when Preformat is to be added back as a feature
273- // @Test
274- // @Throws(Exception::class)
275- // fun changeHeadingToParagraphToPreformatOfSelectedMultilineText() {
276- // editText.fromHtml("<h1 foo=\"bar\">Heading 1</h1><pre>Preformat</pre>")
277- // editText.setSelection(0, safeLength(editText))
278- // toolbar.onMenuItemClick(menuParagraph)
279- // Assert.assertEquals("Heading 1<br>Preformat", editText.toHtml())
280- // Assert.assertEquals(AztecTextFormat.FORMAT_PARAGRAPH, toolbar.getSelectedHeadingMenuItem())
281- // toolbar.onMenuItemClick(menuPreformat)
282- // Assert.assertEquals("<pre>Heading 1<br>Preformat</pre>", editText.toHtml())
283- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
284- // }
283+ @Test
284+ @Throws(Exception ::class )
285+ fun changeHeadingToParagraphToPreformatOfSelectedMultilineText () {
286+ editText.fromHtml(" <h1 foo=\" bar\" >Heading 1</h1><pre>Preformat</pre>" )
287+ editText.setSelection(0 , safeLength(editText))
288+ toolbar.onMenuItemClick(menuParagraph)
289+ Assert .assertEquals(" Heading 1<br>Preformat" , editText.toHtml())
290+ Assert .assertEquals(AztecTextFormat .FORMAT_PARAGRAPH , toolbar.getSelectedHeadingMenuItem())
291+ buttonPreformat.performClick()
292+ Assert .assertEquals(" <pre>Heading 1<br>Preformat</pre>" , editText.toHtml())
293+ Assert .assertTrue(buttonPreformat.isChecked)
294+ }
285295
286296 @Test
287297 @Throws(Exception ::class )
@@ -302,15 +312,14 @@ class HeadingTest {
302312 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
303313 }
304314
305- // TODO: Uncomment when Preformat is to be added back as a feature
306- // @Test
307- // @Throws(Exception::class)
308- // fun applyPreformatToTextInsideQuote() {
309- // editText.fromHtml("<blockquote>Quote</blockquote>")
310- // toolbar.onMenuItemClick(menuPreformat)
311- // Assert.assertEquals("<blockquote><pre>Quote</pre></blockquote>", editText.toHtml())
312- // Assert.assertEquals(AztecTextFormat.FORMAT_PARAGRAPH, toolbar.getSelectedHeadingMenuItem())
313- // }
315+ @Test
316+ @Throws(Exception ::class )
317+ fun applyPreformatToTextInsideQuote () {
318+ editText.fromHtml(" <blockquote>Quote</blockquote>" )
319+ buttonPreformat.performClick()
320+ Assert .assertEquals(" <pre><blockquote>Quote</blockquote></pre>" , editText.toHtml())
321+ Assert .assertEquals(AztecTextFormat .FORMAT_PARAGRAPH , toolbar.getSelectedHeadingMenuItem())
322+ }
314323
315324 @Test
316325 @Throws(Exception ::class )
@@ -337,15 +346,14 @@ class HeadingTest {
337346 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
338347 }
339348
340- // TODO: Uncomment when Preformat is to be added back as a feature
341- // @Test
342- // @Throws(Exception::class)
343- // fun applyPreformatToQuote() {
344- // editText.fromHtml("<blockquote>Quote</blockquote>")
345- // toolbar.onMenuItemClick(menuPreformat)
346- // Assert.assertEquals("<blockquote><pre>Quote</pre></blockquote>", editText.toHtml())
347- // Assert.assertEquals(AztecTextFormat.FORMAT_PARAGRAPH, toolbar.getSelectedHeadingMenuItem())
348- // }
349+ @Test
350+ @Throws(Exception ::class )
351+ fun applyPreformatToQuote () {
352+ editText.fromHtml(" <blockquote>Quote</blockquote>" )
353+ buttonPreformat.performClick()
354+ Assert .assertEquals(" <pre><blockquote>Quote</blockquote></pre>" , editText.toHtml())
355+ Assert .assertEquals(AztecTextFormat .FORMAT_PARAGRAPH , toolbar.getSelectedHeadingMenuItem())
356+ }
349357
350358 @Test
351359 @Throws(Exception ::class )
@@ -358,20 +366,19 @@ class HeadingTest {
358366 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
359367 }
360368
361- // TODO: Uncomment when Preformat is to be added back as a feature
362- // @Test
363- // @Throws(Exception::class)
364- // fun applyPreformatToTextSurroundedByLists() {
365- // editText.fromHtml("<ol><li>Ordered</li></ol>Preformat<ol><li>Ordered</li></ol>")
366- // val mark = editText.text.indexOf("format")
367- // editText.setSelection(mark)
368- // toolbar.onMenuItemClick(menuPreformat)
369- // Assert.assertEquals("<ol><li>Ordered</li></ol><pre>Preformat</pre><ol><li>Ordered</li></ol>", editText.toHtml())
370- // // TODO: Correct heading menu selection. This is incorrect. Preformat should be selected.
371- // // https://github.com/wordpress-mobile/AztecEditor-Android/issues/317
372- // // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
373- // Assert.assertEquals(AztecTextFormat.FORMAT_PARAGRAPH, toolbar.getSelectedHeadingMenuItem())
374- // }
369+ @Test
370+ @Throws(Exception ::class )
371+ fun applyPreformatToTextSurroundedByLists () {
372+ editText.fromHtml(" <ol><li>Ordered</li></ol>Preformat<ol><li>Ordered</li></ol>" )
373+ val mark = editText.text.indexOf(" format" )
374+ editText.setSelection(mark)
375+ buttonPreformat.performClick()
376+ Assert .assertEquals(" <ol><li>Ordered</li></ol><pre>Preformat</pre><ol><li>Ordered</li></ol>" , editText.toHtml())
377+ // TODO: Correct heading menu selection. This is incorrect. Preformat should be selected.
378+ // https://github.com/wordpress-mobile/AztecEditor-Android/issues/317
379+ // Assert.assertTrue(buttonPreformat.isChecked)
380+ Assert .assertEquals(AztecTextFormat .FORMAT_PARAGRAPH , toolbar.getSelectedHeadingMenuItem())
381+ }
375382
376383 @Test
377384 @Throws(Exception ::class )
@@ -384,17 +391,16 @@ class HeadingTest {
384391 Assert .assertEquals(AztecTextFormat .FORMAT_HEADING_1 , toolbar.getSelectedHeadingMenuItem())
385392 }
386393
387- // TODO: Uncomment when Preformat is to be added back as a feature
388- // @Test
389- // @Throws(Exception::class)
390- // fun applyPreformatToTextSurroundedByQuotes() {
391- // editText.fromHtml("<blockquote>Quote</blockquote>Preformat<blockquote>Quote</blockquote>")
392- // val mark = editText.text.indexOf("format")
393- // editText.setSelection(mark)
394- // toolbar.onMenuItemClick(menuPreformat)
395- // Assert.assertEquals("<blockquote>Quote</blockquote><pre>Preformat</pre><blockquote>Quote</blockquote>", editText.toHtml())
396- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
397- // }
394+ @Test
395+ @Throws(Exception ::class )
396+ fun applyPreformatToTextSurroundedByQuotes () {
397+ editText.fromHtml(" <blockquote>Quote</blockquote>Preformat<blockquote>Quote</blockquote>" )
398+ val mark = editText.text.indexOf(" format" )
399+ editText.setSelection(mark)
400+ buttonPreformat.performClick()
401+ Assert .assertEquals(" <blockquote>Quote</blockquote><pre>Preformat</pre><blockquote>Quote</blockquote>" , editText.toHtml())
402+ Assert .assertTrue(buttonPreformat.isChecked)
403+ }
398404
399405 @Test
400406 @Throws(Exception ::class )
@@ -498,10 +504,9 @@ class HeadingTest {
498504 editText.setSelection(cursor)
499505 Assert .assertEquals(AztecTextFormat .FORMAT_PARAGRAPH , toolbar.getSelectedHeadingMenuItem())
500506
501- // TODO: Uncomment when Preformat is to be added back as a feature
502- // cursor = editText.text.indexOf("format")
503- // editText.setSelection(cursor)
504- // Assert.assertEquals(AztecTextFormat.FORMAT_PREFORMAT, toolbar.getSelectedHeadingMenuItem())
507+ cursor = editText.text.indexOf(" format" )
508+ editText.setSelection(cursor)
509+ Assert .assertTrue(buttonPreformat.isChecked)
505510 }
506511
507512 /* *
0 commit comments