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

Unified Diff: editor/tools/plugins/com.google.dart.tools.ui_test/src/com/google/dart/tools/ui/refactoring/RenameAnalyzeUtilTest.java

Issue 10162026: Report warnings and non-fatal errors for shadowing declaration and usage. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Tweaks for review comments Created 8 years, 8 months 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.tools.ui_test/src/com/google/dart/tools/ui/refactoring/RenameAnalyzeUtilTest.java
diff --git a/editor/tools/plugins/com.google.dart.tools.ui_test/src/com/google/dart/tools/ui/refactoring/RenameAnalyzeUtilTest.java b/editor/tools/plugins/com.google.dart.tools.ui_test/src/com/google/dart/tools/ui/refactoring/RenameAnalyzeUtilTest.java
index b3f8a1e21aed5b9cf491073f6bf565e5d15c6021..f410d27ee90938cbc65405c028956c1e3e06e7a2 100644
--- a/editor/tools/plugins/com.google.dart.tools.ui_test/src/com/google/dart/tools/ui/refactoring/RenameAnalyzeUtilTest.java
+++ b/editor/tools/plugins/com.google.dart.tools.ui_test/src/com/google/dart/tools/ui/refactoring/RenameAnalyzeUtilTest.java
@@ -19,8 +19,10 @@ import com.google.dart.tools.core.model.DartElement;
import com.google.dart.tools.core.model.DartLibrary;
import com.google.dart.tools.core.model.DartModelException;
import com.google.dart.tools.core.model.Method;
+import com.google.dart.tools.core.model.SourceRange;
import com.google.dart.tools.core.model.Type;
import com.google.dart.tools.core.model.TypeMember;
+import com.google.dart.tools.core.search.SearchMatch;
import com.google.dart.tools.core.test.util.TestProject;
import com.google.dart.tools.internal.corext.refactoring.rename.RenameAnalyzeUtil;
@@ -65,6 +67,104 @@ public final class RenameAnalyzeUtilTest extends RefactoringTest {
}
}
+ /**
+ * Test for {@link RenameAnalyzeUtil#getReferences(DartElement)}.
+ */
+ public void test_getReferences_field() throws Exception {
+ setTestUnitContent(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " var test;",
+ "}",
+ "f() {",
+ " A a = new A();",
+ " a.test = 1;",
+ "}",
+ "");
+ check_getReferences("test;", "test = 1;", 4);
+ }
+
+ /**
+ * Test for {@link RenameAnalyzeUtil#getReferences(DartElement)}.
+ */
+ public void test_getReferences_function() throws Exception {
+ setTestUnitContent(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "test() {}",
+ "f() {",
+ " test();",
+ "}",
+ "");
+ check_getReferences("test() {}", "test();", 4);
+ }
+
+ /**
+ * Test for {@link RenameAnalyzeUtil#getReferences(DartElement)}. XXX
+ */
+ public void test_getReferences_functionTypeAlias() throws Exception {
+ setTestUnitContent(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "typedef Test();",
+ "f() {",
+ " Test a;",
+ "}",
+ "");
+ check_getReferences("Test();", "Test a", 4);
+ }
+
+ /**
+ * Test for {@link RenameAnalyzeUtil#getReferences(DartElement)}.
+ */
+ public void test_getReferences_method() throws Exception {
+ setTestUnitContent(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " test() {}",
+ "}",
+ "f() {",
+ " A a = new A();",
+ " a.test();",
+ "}",
+ "");
+ check_getReferences("test() {}", "test();", 4);
+ }
+
+ /**
+ * Test for {@link RenameAnalyzeUtil#getReferences(DartElement)}.
+ */
+ public void test_getReferences_null() throws Exception {
+ List<SearchMatch> references = RenameAnalyzeUtil.getReferences(null);
+ assertThat(references).isEmpty();
+ }
+
+ /**
+ * Test for {@link RenameAnalyzeUtil#getReferences(DartElement)}. XXX
+ */
+ public void test_getReferences_type() throws Exception {
+ setTestUnitContent(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class Test {}",
+ "f() {",
+ " Test a;",
+ "}",
+ "");
+ check_getReferences("Test {}", "Test a", 4);
+ }
+
+ /**
+ * Test for {@link RenameAnalyzeUtil#getReferences(DartElement)}.
+ */
+ public void test_getReferences_variable() throws Exception {
+ setTestUnitContent(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "var test;",
+ "f() {",
+ " test = 1;",
+ "}",
+ "");
+ check_getReferences("test;", "test = 1;", 4);
+ }
+
public void test_getSubTypes() throws Exception {
setUnitContent(
"Lib.dart",
@@ -221,6 +321,51 @@ public final class RenameAnalyzeUtilTest extends RefactoringTest {
}
/**
+ * Test for {@link RenameAnalyzeUtil#isTypeHierarchy(Type, Type)}.
+ */
+ public void test_isTypeHierarchy() throws Exception {
+ setTestUnitContent(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "#library('Test');",
+ "#import('Lib.dart');",
+ "class A {}",
+ "class B extends A {}",
+ "class C extends B {}",
+ "");
+ TestProject.waitForAutoBuild();
+ Type typeA = getTopLevelElementNamed("A");
+ Type typeB = getTopLevelElementNamed("B");
+ Type typeC = getTopLevelElementNamed("C");
+ // A
+ assertFalse(RenameAnalyzeUtil.isTypeHierarchy(typeA, typeA));
+ assertFalse(RenameAnalyzeUtil.isTypeHierarchy(typeA, typeB));
+ assertFalse(RenameAnalyzeUtil.isTypeHierarchy(typeA, typeC));
+ // B
+ assertTrue(RenameAnalyzeUtil.isTypeHierarchy(typeB, typeA));
+ assertFalse(RenameAnalyzeUtil.isTypeHierarchy(typeB, typeB));
+ assertFalse(RenameAnalyzeUtil.isTypeHierarchy(typeB, typeC));
+ // C
+ assertTrue(RenameAnalyzeUtil.isTypeHierarchy(typeC, typeA));
+ assertTrue(RenameAnalyzeUtil.isTypeHierarchy(typeC, typeB));
+ assertFalse(RenameAnalyzeUtil.isTypeHierarchy(typeC, typeC));
+ }
+
+ // XXX
+ private void check_getReferences(String searchPattern, String referencePattern, int length)
+ throws Exception {
+ TestProject.waitForAutoBuild();
+ DartElement variable = findElement(searchPattern);
+ // prepare single reference
+ List<SearchMatch> references = RenameAnalyzeUtil.getReferences(variable);
+ assertThat(references).hasSize(1);
+ SearchMatch reference = references.get(0);
+ // check source range
+ SourceRange referenceRange = reference.getSourceRange();
+ assertEquals(testUnit.getSource().indexOf(referencePattern), referenceRange.getOffset());
+ assertEquals(length, referenceRange.getLength());
+ }
+
+ /**
* @return the {@link DartElement} in library of {@link #testUnit}.
*/
@SuppressWarnings("unchecked")

Powered by Google App Engine
This is Rietveld 408576698