1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package org.xwiki.test.ui.tag

File AddRemoveTagsTest.java

 
 

Code metrics

0
93
10
1
246
170
10
0.11
9.3
10
1

Classes

Class Line # Actions
AddRemoveTagsTest 41 93 0% 10 10
0.902912690.3%
 

Contributing tests

This file is covered by 9 tests. .

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package org.xwiki.test.ui.tag;
21   
22    import org.junit.Assert;
23    import org.apache.commons.lang.RandomStringUtils;
24    import org.junit.Before;
25    import org.junit.Rule;
26    import org.junit.Test;
27    import org.xwiki.tag.test.po.AddTagsPane;
28    import org.xwiki.tag.test.po.TaggablePage;
29    import org.xwiki.tag.test.po.TagPage;
30    import org.xwiki.test.ui.AbstractTest;
31    import org.xwiki.test.ui.AdminAuthenticationRule;
32    import org.xwiki.test.ui.browser.IgnoreBrowser;
33    import org.xwiki.test.ui.browser.IgnoreBrowsers;
34   
35    /**
36    * Several tests for adding and removing tags to/from a wiki page.
37    *
38    * @version $Id: d930814db05c02f738596888aaa75647ec34f830 $
39    * @since 3.1M1
40    */
 
41    public class AddRemoveTagsTest extends AbstractTest
42    {
43    @Rule
44    public AdminAuthenticationRule adminAuthenticationRule = new AdminAuthenticationRule(getUtil());
45   
46    /**
47    * The test page.
48    */
49    private TaggablePage taggablePage;
50   
51    private TagPage tagPage;
52   
 
53  9 toggle @Before
54    public void setUp() throws Exception
55    {
56    // Create a new test page.
57  9 getUtil().rest().deletePage(getTestClassName(), getTestMethodName());
58  9 getUtil().createPage(getTestClassName(), getTestMethodName(), null, null);
59  9 taggablePage = new TaggablePage();
60    }
61   
62    /**
63    * Adds and removes a tag.
64    */
 
65  1 toggle @Test
66    @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177")
67    public void testAddRemoveTag()
68    {
69  1 String tag = RandomStringUtils.randomAlphanumeric(4);
70  1 Assert.assertFalse(taggablePage.hasTag(tag));
71  1 AddTagsPane addTagsPane = taggablePage.addTags();
72  1 addTagsPane.setTags(tag);
73  1 Assert.assertTrue(addTagsPane.add());
74  1 Assert.assertTrue(taggablePage.hasTag(tag));
75  1 taggablePage.removeTag(tag);
76  1 Assert.assertFalse(taggablePage.hasTag(tag));
77    }
78   
79    /**
80    * Open the add tag panel, cancel then open again the add tag panel and add a new tag.
81    */
 
82  1 toggle @Test
83    @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177")
84    public void testCancelAddTag()
85    {
86  1 String firstTag = RandomStringUtils.randomAlphanumeric(4);
87  1 Assert.assertFalse(taggablePage.hasTag(firstTag));
88  1 AddTagsPane addTagsPane = taggablePage.addTags();
89  1 addTagsPane.setTags(firstTag);
90  1 addTagsPane.cancel();
91   
92  1 String secondTag = RandomStringUtils.randomAlphanumeric(4);
93  1 Assert.assertFalse(taggablePage.hasTag(secondTag));
94  1 addTagsPane = taggablePage.addTags();
95  1 addTagsPane.setTags(secondTag);
96  1 Assert.assertTrue(addTagsPane.add());
97  1 Assert.assertTrue(taggablePage.hasTag(secondTag));
98  1 Assert.assertFalse(taggablePage.hasTag(firstTag));
99    }
100   
101    /**
102    * Add many tags and remove one of them.
103    */
 
104  1 toggle @Test
105    @IgnoreBrowsers({
106    @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See http://jira.xwiki.org/browse/XE-1146"),
107    @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177")})
108    public void testAddManyRemoveOneTag()
109    {
110  1 String firstTag = RandomStringUtils.randomAlphanumeric(4);
111  1 Assert.assertFalse(taggablePage.hasTag(firstTag));
112  1 String secondTag = RandomStringUtils.randomAlphanumeric(4);
113  1 Assert.assertFalse(taggablePage.hasTag(secondTag));
114   
115  1 AddTagsPane addTagsPane = taggablePage.addTags();
116  1 addTagsPane.setTags(firstTag + "," + secondTag);
117  1 Assert.assertTrue(addTagsPane.add());
118  1 Assert.assertTrue(taggablePage.hasTag(firstTag));
119  1 Assert.assertTrue(taggablePage.hasTag(secondTag));
120   
121  1 Assert.assertTrue(taggablePage.removeTag(firstTag));
122  1 Assert.assertTrue(taggablePage.hasTag(secondTag));
123    }
124   
125    /**
126    * Tests that a tag can't be added twice to the same page.
127    */
 
128  1 toggle @Test
129    @IgnoreBrowsers({
130    @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See http://jira.xwiki.org/browse/XE-1146"),
131    @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177")})
132    public void testAddExistingTag()
133    {
134  1 String tag = RandomStringUtils.randomAlphanumeric(4);
135  1 Assert.assertFalse(taggablePage.hasTag(tag));
136  1 AddTagsPane addTagsPane = taggablePage.addTags();
137  1 addTagsPane.setTags(tag);
138  1 Assert.assertTrue(addTagsPane.add());
139  1 Assert.assertTrue(taggablePage.hasTag(tag));
140   
141  1 addTagsPane = taggablePage.addTags();
142  1 addTagsPane.setTags(tag);
143  1 Assert.assertFalse(addTagsPane.add());
144  1 addTagsPane.cancel();
145    }
146   
147    /**
148    * Add a tag that contains the pipe character, which is used to separate stored tags.
149    */
 
150  1 toggle @Test
151    @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177")
152    public void testAddTagContainingPipe()
153    {
154  1 String tag = RandomStringUtils.randomAlphanumeric(3) + "|" + RandomStringUtils.randomAlphanumeric(3);
155  1 Assert.assertFalse(taggablePage.hasTag(tag));
156  1 AddTagsPane addTagsPane = taggablePage.addTags();
157  1 addTagsPane.setTags(tag);
158  1 Assert.assertTrue(addTagsPane.add());
159  1 Assert.assertTrue(taggablePage.hasTag(tag));
160   
161    // Reload the page and test again.
162  1 getUtil().gotoPage(getTestClassName(), getTestMethodName());
163  1 taggablePage = new TaggablePage();
164  1 Assert.assertTrue(taggablePage.hasTag(tag));
165    }
166   
167    /**
168    * @see <a href="http://jira.xwiki.org/jira/browse/XWIKI-3843">XWIKI-3843</a>: Strip leading and trailing white
169    * spaces to tags when white space is not the separator
170    */
 
171  1 toggle @Test
172    @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177")
173    public void testStripLeadingAndTrailingSpacesFromTags()
174    {
175  1 String firstTag = RandomStringUtils.randomAlphanumeric(4);
176  1 Assert.assertFalse(taggablePage.hasTag(firstTag));
177  1 String secondTag = RandomStringUtils.randomAlphanumeric(4);
178  1 Assert.assertFalse(taggablePage.hasTag(secondTag));
179   
180  1 AddTagsPane addTagsPane = taggablePage.addTags();
181  1 addTagsPane.setTags(" " + firstTag + " , " + secondTag + " ");
182  1 Assert.assertTrue(addTagsPane.add());
183  1 Assert.assertTrue(taggablePage.hasTag(firstTag));
184  1 Assert.assertTrue(taggablePage.hasTag(secondTag));
185    }
186   
187    /**
188    * @see <a href="http://jira.xwiki.org/jira/browse/XWIKI-6549">XWIKI-6549</a>: Prevent adding new tags that are
189    * equal ignoring case with existing tags
190    */
 
191  1 toggle @Test
192    @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177")
193    public void testTagCaseIsIgnored()
194    {
195  1 String firstTag = "taG1";
196  1 Assert.assertFalse(taggablePage.hasTag(firstTag));
197    // Second tag is same as first tag but with different uppercase/lowercase chars.
198  1 String secondTag = "Tag1";
199  1 Assert.assertFalse(taggablePage.hasTag(secondTag));
200  1 String thirdTag = "tag3";
201  1 Assert.assertFalse(taggablePage.hasTag(thirdTag));
202   
203  1 AddTagsPane addTagsPane = taggablePage.addTags();
204  1 addTagsPane.setTags(firstTag + "," + thirdTag + "," + secondTag);
205  1 Assert.assertTrue(addTagsPane.add());
206  1 Assert.assertTrue(taggablePage.hasTag(firstTag));
207  1 Assert.assertFalse(taggablePage.hasTag(secondTag));
208  1 Assert.assertTrue(taggablePage.hasTag(thirdTag));
209    }
210   
 
211  1 toggle @Test
212    @IgnoreBrowsers({
213    @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See http://jira.xwiki.org/browse/XE-1146"),
214    @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177")})
215    public void addAndRenameTagFromTagPage()
216    {
217  1 String tag = "MyTag";
218  1 AddTagsPane addTagsPane = taggablePage.addTags();
219  1 addTagsPane.setTags(tag);
220  1 Assert.assertTrue(addTagsPane.add());
221  1 Assert.assertTrue(taggablePage.hasTag(tag));
222  1 tagPage = taggablePage.clickOnTag(tag);
223  1 tagPage.clickRenameButton();
224  1 tagPage.setNewTagName("MyTagRenamed");
225  1 tagPage.clickConfirmRenameTagButton();
226  1 Assert.assertTrue(tagPage.hasTagHighlight("MyTagRenamed"));
227    }
228   
 
229  0 toggle @Test
230    @IgnoreBrowsers({
231    @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See http://jira.xwiki.org/browse/XE-1146"),
232    @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177")})
233    public void addAndDeleteTagFromTagPage()
234    {
235  0 String tag = "MyTagToBeDeleted";
236  0 AddTagsPane addTagsPane = taggablePage.addTags();
237  0 addTagsPane.setTags(tag);
238  0 Assert.assertTrue(addTagsPane.add());
239  0 Assert.assertTrue(taggablePage.hasTag(tag));
240  0 tagPage = taggablePage.clickOnTag(tag);
241  0 tagPage.clickDeleteButton();
242  0 tagPage.clickConfirmDeleteTag();
243  0 Test failure here Assert.assertTrue(tagPage.hasConfirmationMessage(tag));
244    }
245   
246    }