1 33 34 package edu.rice.cs.drjava.model.definitions.indent; 35 36 import javax.swing.text.BadLocationException ; 37 38 46 public final class QuestionBraceIsParenOrBracketTest extends IndentRulesTestCase { 47 49 private String _text; 50 51 private final IndentRuleQuestion _rule = new QuestionBraceIsParenOrBracket(null, null); 52 53 public void testParen() throws BadLocationException { 54 int i; 55 56 57 _text = "boolean method(int[] a, String b)"; 58 _setDocText(_text); 59 60 for (i = 0; i < _text.length(); i++) 61 assertTrue("START has no brace.", !_rule.applyRule(_doc, i, Indenter.OTHER)); 62 63 64 _text = 65 "boolean method\n" + 66 " (int[] a, String b)"; 67 68 _setDocText(_text); 69 70 for (i = 0; i < _text.length(); i++) 71 assertTrue("START has no brace.", !_rule.applyRule(_doc, i, Indenter.OTHER)); 72 73 74 _text = 75 "boolean method(\n" + 76 " int[] a, String b)"; 77 78 _setDocText(_text); 79 80 for (i = 0; i < 16; i++) 81 assertTrue("START has no brace.", !_rule.applyRule(_doc, i, Indenter.OTHER)); 82 83 85 for (i = 16; i < _text.length(); i++) 86 assertTrue("START's brace is an open paren.", _rule.applyRule(_doc, i, Indenter.OTHER)); 87 88 89 90 _text = 91 "if (<cond>) {\n" + 92 " if (\n" + 93 " <cond>) { ... }}"; 94 95 _setDocText(_text); 96 97 for (i = 0; i < 23; i++) 98 assertTrue("START has no brace.", !_rule.applyRule(_doc, i, Indenter.OTHER)); 99 100 102 for (i = 23; i < _text.length(); i++) 103 assertTrue("START's brace is an open paren.", _rule.applyRule(_doc, i, Indenter.OTHER)); 104 105 106 107 _text = 108 "method(\n" + 109 " array1, foo(array1[x]))\n" + 110 " <other stuff>"; 111 112 _setDocText(_text); 113 114 assertTrue("START has no brace.", !_rule.applyRule(_doc, 0, Indenter.OTHER)); 115 assertTrue("START has no brace", !_rule.applyRule(_doc, 7, Indenter.OTHER)); 116 assertTrue("START's brace is an open paren.", _rule.applyRule(_doc, 8, Indenter.OTHER)); 117 assertTrue("START's brace is an open paren.", _rule.applyRule(_doc, 30, Indenter.OTHER)); 118 assertTrue("START has no brace.", !_rule.applyRule(_doc, _text.length() - 1, Indenter.OTHER)); 119 } 120 121 public void testBracket() throws BadLocationException 122 { 123 int i; 124 125 126 127 _text = 128 "boolean method(int[\n" + 129 " ELTS]\n" + 130 " a, String b)"; 131 132 _setDocText(_text); 133 134 for (i = 0; i < 20; i++) 135 assertTrue("START has no brace.", !_rule.applyRule(_doc, i, Indenter.OTHER)); 136 137 139 for (i = 20; i < 29; i++) 140 assertTrue("START's brace is an open bracket.", _rule.applyRule(_doc, i, Indenter.OTHER)); 141 142 for (i = 29; i < _text.length(); i++) 143 assertTrue("START's brace is an open paren.", _rule.applyRule(_doc, i, Indenter.OTHER)); 144 145 146 147 _text = "array1[i]\n" + 148 " [j]"; 149 150 _setDocText(_text); 151 152 for (i = 0; i < _text.length(); i++) 153 assertTrue("START has no brace.", !_rule.applyRule(_doc, i, Indenter.OTHER)); 154 155 156 157 _text = 158 "array1[\n" + 159 " i][\n" + 160 " j]"; 161 162 _setDocText(_text); 163 164 assertTrue("START's paren is an open bracket.", _rule.applyRule(_doc, 8, Indenter.OTHER)); 165 assertTrue("START's paren is an open bracket.", _rule.applyRule(_doc, 22, Indenter.OTHER)); 166 assertTrue("START's paren is an open bracket.", _rule.applyRule(_doc, 23, Indenter.OTHER)); 167 } 168 169 public void testCurly() throws BadLocationException 170 { 171 172 173 _text = 174 "class X extends Base\n" + 175 "{\n" + 176 "}"; 177 178 _setDocText(_text); 179 180 assertTrue("START has no brace.", !_rule.applyRule(_doc, 0, Indenter.OTHER)); 181 assertTrue("START has no brace.", !_rule.applyRule(_doc, 20, Indenter.OTHER)); 182 assertTrue("START is curly brace.", !_rule.applyRule(_doc, 21, Indenter.OTHER)); 183 assertTrue("START is close brace.", !_rule.applyRule(_doc, 23, Indenter.OTHER)); 184 185 186 187 _text = 188 "class X extends Base\n" + 189 "{\n" + 190 " int bla() { return 44; }\n" + 191 "}"; 192 193 _setDocText(_text); 194 195 assertTrue("START has no brace.", !_rule.applyRule(_doc, 0, Indenter.OTHER)); 196 assertTrue("START has no brace.", !_rule.applyRule(_doc, 20, Indenter.OTHER)); 197 assertTrue("START is curly brace.", !_rule.applyRule(_doc, 21, Indenter.OTHER)); 198 assertTrue("START's brace is curly brace.", !_rule.applyRule(_doc, 23, Indenter.OTHER)); 199 assertTrue("START is close curly brace.", !_rule.applyRule(_doc, _text.length() - 1, Indenter.OTHER)); 200 201 202 203 _text = 204 "class X extends Base\n" + 205 "{}\n" + 206 "class Y extends Base\n" + 207 "{}"; 208 209 _setDocText(_text); 210 211 assertTrue("START has no brace.", !_rule.applyRule(_doc, 0, Indenter.OTHER)); 212 assertTrue("START has no brace.", !_rule.applyRule(_doc, 20, Indenter.OTHER)); 213 assertTrue("START is open curly brace.", !_rule.applyRule(_doc, 21, Indenter.OTHER)); 214 assertTrue("START has no brace.", !_rule.applyRule(_doc, 24, Indenter.OTHER)); 215 assertTrue("START's brace is open curly brace.", !_rule.applyRule(_doc, _text.length() - 1, Indenter.OTHER)); 216 } 217 218 public void testBracketWithArrayComprehension() throws BadLocationException { 219 int i; 220 221 222 223 _text = 224 "f(int[\n" + 225 " ] {1, 2, 3},\n" + 226 " a, String b)"; 227 228 _setDocText(_text); 229 230 for (i = 0; i < 7; i++) 231 assertTrue("START has no brace.", !_rule.applyRule(_doc, i, Indenter.OTHER)); 232 233 235 for (i = 7; i < 27; i++) 236 assertTrue("START's brace is an open bracket.", _rule.applyRule(_doc, i, Indenter.OTHER)); 237 238 for (i = 27; i < _text.length(); i++) 239 assertTrue("START's brace is an open paren.", _rule.applyRule(_doc, i, Indenter.OTHER)); 240 } 241 } 242 243 244 245 246 247 248 | Popular Tags |