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

Unified Diff: tests/lib/mirrors/find_in_context_private_test.dart

Issue 52953002: Hide ClosureMirror.findInContext behind a flag for 1.0. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: rebase Created 7 years, 2 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: tests/lib/mirrors/find_in_context_private_test.dart
diff --git a/tests/lib/mirrors/find_in_context_private_test.dart b/tests/lib/mirrors/find_in_context_private_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..dc358930ca2dcd7de76fdd177b6f7c2d92666e51
--- /dev/null
+++ b/tests/lib/mirrors/find_in_context_private_test.dart
@@ -0,0 +1,104 @@
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// VMOptions=--support_find_in_context=true
+
+library test.find_in_context_private;
+
+import "dart:mirrors";
+import "package:expect/expect.dart";
+
+var _globalVariable = "globalVariable";
+_globalFoo() => 17;
+
+class S {
+ static _staticFooInS() => "staticFooInS";
+ static var _staticInS = "staticInS";
+ var _instanceInS = "instanceInS";
+}
+
+class C extends S {
+ static _staticFooInC() => "staticFooInC";
+ static var _staticInC = "staticInC";
+ var _instanceInC = "instanceInC";
+
+ _method() {
+ var _local = "local";
+ nested() {
+ var _innerLocal = "innerLocal";
+ print(this._instanceInC);
+ print(_local);
+ print(_innerLocal);
+ }
+ return nested;
+ }
+
+}
+
+doFindInContext(cm, name, value) {
+ Expect.equals(value,
+ cm.findInContext(name).reflectee);
+}
+dontFindInContext(cm, name) {
+ Expect.isNull(cm.findInContext(name));
+}
+
+main() {
+ LibraryMirror wrongLibrary = reflectClass(List).owner;
+ p(name) => MirrorSystem.getSymbol(name, wrongLibrary);
+
+ C c = new C();
+
+ // In the context of C._method.nested.
+ ClosureMirror cm = reflect(c._method());
+
+ // N.B.: innerLocal is only defined with respective to an activation of the
+ // closure 'nested', not the closure itself.
+ dontFindInContext(cm, #_innerLocal);
+
+ doFindInContext(cm, #_local, "local");
+ doFindInContext(cm, #_method, c._method);
+ doFindInContext(cm, #_instanceInC, "instanceInC");
+ doFindInContext(cm, #_staticInC, "staticInC");
+ doFindInContext(cm, #_staticFooInC, C._staticFooInC);
+ dontFindInContext(cm, #_staticInS);
+ dontFindInContext(cm, #_staticFooInS);
+ doFindInContext(cm, #_globalFoo, _globalFoo);
+ doFindInContext(cm, #_globalVariable, "globalVariable");
+
+ dontFindInContext(cm, p('_local'));
+ dontFindInContext(cm, p('_innerLocal'));
+ dontFindInContext(cm, p('_method'));
+ dontFindInContext(cm, p('_instanceInC'));
+ dontFindInContext(cm, p('_staticInC'));
+ dontFindInContext(cm, p('_staticFooInC'));
+ dontFindInContext(cm, p('_staticInS'));
+ dontFindInContext(cm, p('_staticFooInS'));
+ dontFindInContext(cm, p('_globalFoo'));
+ dontFindInContext(cm, p('_globalVariable'));
+
+ // In the context of C._method.
+ cm = reflect(c._method);
+ dontFindInContext(cm, #_innerLocal);
+ dontFindInContext(cm, #_local); // N.B.: See above.
+ doFindInContext(cm, #_method, c._method);
+ doFindInContext(cm, #_instanceInC, "instanceInC");
+ doFindInContext(cm, #_staticInC, "staticInC");
+ doFindInContext(cm, #_staticFooInC, C._staticFooInC);
+ dontFindInContext(cm, #_staticInS);
+ dontFindInContext(cm, #_staticFooInS);
+ doFindInContext(cm, #_globalFoo, _globalFoo);
+ doFindInContext(cm, #_globalVariable, "globalVariable");
+
+ dontFindInContext(cm, p('_local'));
+ dontFindInContext(cm, p('_innerLocal'));
+ dontFindInContext(cm, p('_method'));
+ dontFindInContext(cm, p('_instanceInC'));
+ dontFindInContext(cm, p('_staticInC'));
+ dontFindInContext(cm, p('_staticFooInC'));
+ dontFindInContext(cm, p('_staticInS'));
+ dontFindInContext(cm, p('_staticFooInS'));
+ dontFindInContext(cm, p('_globalFoo'));
+ dontFindInContext(cm, p('_globalVariable'));
+}
« no previous file with comments | « tests/lib/mirrors/find_in_context_fake_function_test.dart ('k') | tests/lib/mirrors/find_in_context_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698