Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(482)

Unified Diff: editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/formatter/edit/EditRecorderTest.java

Issue 11316129: Formatter checkpoint. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/formatter/edit/EditRecorderTest.java
===================================================================
--- editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/formatter/edit/EditRecorderTest.java (revision 15190)
+++ editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/formatter/edit/EditRecorderTest.java (working copy)
@@ -15,13 +15,14 @@
import com.google.dart.engine.EngineTestCase;
import com.google.dart.engine.formatter.FakeFactory.FakeRecorder;
+import com.google.dart.engine.internal.formatter.edit.StringEditOperation;
+import com.google.dart.engine.scanner.Keyword;
+import com.google.dart.engine.scanner.KeywordToken;
+import com.google.dart.engine.scanner.StringToken;
+import com.google.dart.engine.scanner.TokenType;
import static com.google.dart.engine.formatter.FakeFactory.createRecorder;
-import static com.google.dart.engine.formatter.FakeFactory.edit;
-import static com.google.dart.engine.formatter.MatcherFactory.matches;
-import static org.junit.Assert.assertThat;
-
/**
* Basic {@link EditRecorder} tests.
*/
@@ -51,6 +52,26 @@
assertFalse(createRecorder("0" + NEW_LINE).isNewlineAt(2));
}
+ public void testNewline_eats_extra_ws_1() throws Exception {
+ String src = " " + NEW_LINE;
+ recorder = createRecorder(src);
+ recorder.newline();
+ assertResultEquals("" + NEW_LINE);
+ }
+
+ public void testNewline_eats_extra_ws_2() throws Exception {
+ String src = "class A " + NEW_LINE;
+ recorder = createRecorder(src);
+ KeywordToken token = new KeywordToken(Keyword.CLASS, 0);
+ token.setNext(new StringToken(TokenType.IDENTIFIER, "A", 6));
+ recorder.setStart(token);
+ recorder.advance("class");
+ recorder.space();
+ recorder.advance("A");
+ recorder.newline();
+ assertResultEquals("class A" + NEW_LINE);
+ }
+
public void testSpace_advances_1() throws Exception {
recorder = createRecorder(" foo");
int startColumn = recorder.column;
@@ -58,22 +79,44 @@
assertEquals(startColumn + 1, recorder.column);
}
- public void testSpace_advances_2() throws Exception {
- recorder = createRecorder("foo");
- int startColumn = recorder.column;
+ public void testSpace_eats_extra_ws_1() throws Exception {
+ String src = " class";
+ recorder = createRecorder(src);
+ recorder.setStart(new KeywordToken(Keyword.CLASS, 3));
recorder.space();
- assertEquals(startColumn + 1, recorder.column);
+ recorder.advance("class");
+ assertResultEquals(" class");
}
- public void testSpace_eats_extra_ws() throws Exception {
- recorder = createRecorder(" foo");
- int startColumn = recorder.column;
+ public void testSpace_eats_extra_ws_2() throws Exception {
+ String src = "class A";
+ recorder = createRecorder(src);
+ KeywordToken token = new KeywordToken(Keyword.CLASS, 0);
+ token.setNext(new StringToken(TokenType.IDENTIFIER, "A", 7));
+ recorder.setStart(token);
+ recorder.advance("class");
recorder.space();
- assertEquals(startColumn + 1, recorder.column);
- Edit edit = recorder.getLastEdit();
- assertThat(edit, matches(edit(1, 1, "")));
+ recorder.advance("A");
+ assertResultEquals("class A");
}
+ public void testSpace_eats_extra_ws_3() throws Exception {
+ String src = "class A extends";
+ recorder = createRecorder(src);
+ KeywordToken token = new KeywordToken(Keyword.CLASS, 0);
+ StringToken token2 = new StringToken(TokenType.IDENTIFIER, "A", 7);
+ KeywordToken token3 = new KeywordToken(Keyword.EXTENDS, 10);
+ token.setNext(token2);
+ token2.setNext(token3);
+ recorder.setStart(token);
+ recorder.advance("class");
+ recorder.space();
+ recorder.advance("A");
+ recorder.space();
+ recorder.advance("extends");
+ assertResultEquals("class A extends");
+ }
+
public void testUnindent() throws Exception {
assertEquals(0, recorder.indentationLevel);
assertEquals(2, recorder.indentPerLevel);
@@ -82,4 +125,19 @@
assertEquals(0, recorder.indentationLevel);
}
+// public void testSpace_eats_extra_ws() throws Exception {
+// recorder = createRecorder(" foo");
+// int startColumn = recorder.column;
+// recorder.space();
+// assertEquals(startColumn + 1, recorder.column);
+// Edit edit = recorder.getLastEdit();
+// assertThat(edit, matches(edit(1, 1, "")));
+// }
+
+ private void assertResultEquals(String expected) {
+ assertEqualString(
+ expected,
+ new StringEditOperation(recorder.getEdits()).applyTo(recorder.getSource()));
+ }
+
}

Powered by Google App Engine
This is Rietveld 408576698