replaced <code></code> with more concise {@code}
[idea/community.git] / plugins / properties / testSrc / com / intellij / lang / properties / editor / ResourceBundleUtilTest.java
1 /*
2  * Copyright 2000-2013 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.lang.properties.editor;
17
18 import com.intellij.lang.properties.psi.PropertiesResourceBundleUtil;
19 import org.junit.Test;
20
21 import static org.junit.Assert.assertEquals;
22
23 /**
24  * @author Denis Zhdanov
25  * @since 10/5/11 2:37 PM
26  */
27 public class ResourceBundleUtilTest {
28
29   /**
30    * Holds pairs like {@code ('property value'; 'value editor text')}.
31    */
32   private static final String[][] TEST_DATA = {
33     // Common.
34     { "", "" },
35     { "as-is", "as-is" },
36     { "with escaped escape symbol - \\\\", "with escaped escape symbol - \\" },
37     
38     // Special symbols.
39     {"special symbols - # and ! and = and :", "special symbols - # and ! and = and :"},
40     
41     // White spaces.
42     { "trailing white space ", "trailing white space " },
43     { "trailing white spaces   ", "trailing white spaces   " },
44     { "trailing tab\t", "trailing tab\t" },
45     { "trailing tabs\t\t\t", "trailing tabs\t\t\t" },
46     { "\\\tstarting from tab", "\tstarting from tab" },
47     { "\\\t\t\tstarting from tabs", "\t\t\tstarting from tabs" },
48     { "\\ starting from white space", " starting from white space" },
49     { "\\   starting from white spaces", "   starting from white spaces" },
50     { "\\ \t  starting from white spaces and tabs", " \t  starting from white spaces and tabs" },
51     { "first line \\\nsecond line", "first line \nsecond line" },
52
53     // Non-ascii symbols and escaped characters
54     { "wei\u00DF", "wei\u00DF" },
55     { "wei\\u00DF", "wei\\u00DF" },
56
57     // All together.
58     {"\\\t text with \\\nspecial symbols:\\\n#", "\t text with \nspecial symbols:\n#"}
59   };
60   
61   @Test
62   public void checkAllTestData() {
63     for (String[] entry : TEST_DATA) {
64       assertEquals(
65         "Expected property value differs from the one converted from value editor text",
66         entry[0],
67         PropertiesResourceBundleUtil.fromValueEditorToPropertyValue(entry[1], '=')
68       );
69       assertEquals(
70         "Expected value editor text differs from the one converted from property value",
71         entry[1],
72         PropertiesResourceBundleUtil.fromPropertyValueToValueEditor(entry[0])
73       );
74     }
75   }
76 }