Index: editor/tools/plugins/com.google.dart.tools.ui_test/src/com/google/dart/tools/ui/internal/text/dart/DartStringDoubleClickSelectorTest.java |
diff --git a/editor/tools/plugins/com.google.dart.tools.ui_test/src/com/google/dart/tools/ui/internal/text/dart/DartStringDoubleClickSelectorTest.java b/editor/tools/plugins/com.google.dart.tools.ui_test/src/com/google/dart/tools/ui/internal/text/dart/DartStringDoubleClickSelectorTest.java |
index d83044963d45646128dad3adff07ab0ad46e7345..12b714c019b1a3ff7605c34a34e18d6a83175ee2 100644 |
--- a/editor/tools/plugins/com.google.dart.tools.ui_test/src/com/google/dart/tools/ui/internal/text/dart/DartStringDoubleClickSelectorTest.java |
+++ b/editor/tools/plugins/com.google.dart.tools.ui_test/src/com/google/dart/tools/ui/internal/text/dart/DartStringDoubleClickSelectorTest.java |
@@ -13,24 +13,30 @@ |
*/ |
package com.google.dart.tools.ui.internal.text.dart; |
-import junit.framework.TestCase; |
+import com.google.dart.engine.ast.CompilationUnit; |
+import com.google.dart.engine.parser.ParserTestCase; |
+import com.google.dart.tools.ui.internal.text.editor.CompilationUnitEditor; |
import org.eclipse.jface.text.Document; |
import org.eclipse.jface.text.IDocument; |
-import org.eclipse.jface.text.ITextViewer; |
import org.eclipse.swt.graphics.Point; |
import static org.mockito.Mockito.mock; |
import static org.mockito.Mockito.verify; |
import static org.mockito.Mockito.when; |
-public class DartStringDoubleClickSelectorTest extends TestCase { |
+public class DartStringDoubleClickSelectorTest extends ParserTestCase { |
private static void assertDoubleClickSelection(String content, String clickPattern, |
- String resultContent) { |
- ITextViewer textViewer = mock(ITextViewer.class); |
+ String resultContent) throws Exception { |
+ CompilationUnitEditor.AdaptedSourceViewer textViewer = mock(CompilationUnitEditor.AdaptedSourceViewer.class); |
// mock document |
IDocument document = new Document(content); |
when(textViewer.getDocument()).thenReturn(document); |
+ // mock editor |
+ CompilationUnitEditor editor = mock(CompilationUnitEditor.class); |
+ when(textViewer.getEditor()).thenReturn(editor); |
+ CompilationUnit unit = parseCompilationUnit(content); |
+ when(editor.getInputUnit()).thenReturn(unit); |
// mock double click position |
int clickOffset = content.indexOf(clickPattern); |
when(textViewer.getSelectedRange()).thenReturn(new Point(clickOffset, 0)); |
@@ -85,6 +91,21 @@ public class DartStringDoubleClickSelectorTest extends TestCase { |
assertDoubleClickSelection(content, clickPattern, resultContent); |
} |
+ public void test_interpolation() throws Exception { |
+ String content = createSource(// |
+ "main() {", |
+ " String first = 'a';", |
+ " String second = 'b';", |
+ " String first$second = 'c';", |
+ " String s = 'xxx$first$second${first$second.length}yyy';//", |
+ " print(s); ", |
+ "}"); |
+ assertDoubleClickSelection(content, "xxx", "xxx$first$second${first$second.length}yyy"); |
+ assertDoubleClickSelection(content, "xx$", "xxx"); |
+ assertDoubleClickSelection(content, "yy\'", "yyy"); |
+ assertDoubleClickSelection(content, "';/", "xxx$first$second${first$second.length}yyy"); |
+ } |
+ |
public void test_onWord() throws Exception { |
String content = "main() { print('aaa bbb'); }"; |
assertDoubleClickSelection(content, "aa bbb", "aaa"); |