| Index: dart/frog/tests/frog/src/EvaluatorTest.dart
 | 
| diff --git a/dart/frog/tests/frog/src/EvaluatorTest.dart b/dart/frog/tests/frog/src/EvaluatorTest.dart
 | 
| deleted file mode 100644
 | 
| index 6f308e1f98041f058368cef2d68529c785f2f4a8..0000000000000000000000000000000000000000
 | 
| --- a/dart/frog/tests/frog/src/EvaluatorTest.dart
 | 
| +++ /dev/null
 | 
| @@ -1,116 +0,0 @@
 | 
| -// Copyright (c) 2011, 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.
 | 
| -
 | 
| -#library('EvaluatorTest');
 | 
| -
 | 
| -#import('node_config.dart');
 | 
| -#import('../../../../lib/unittest/unittest.dart');
 | 
| -#import('../../../evaluator.dart');
 | 
| -// TODO(nweiz): don't depend on Node for these tests
 | 
| -#import('../../../lib/node/node.dart');
 | 
| -#import('../../../file_system_node.dart');
 | 
| -#import('../../../js_evaluator_node.dart');
 | 
| -
 | 
| -main() {
 | 
| -  useNodeConfiguration();
 | 
| -  // TODO(nweiz): This won't work if we aren't running through frogsh.
 | 
| -  var homedir = path.dirname(fs.realpathSync(process.argv[1]));
 | 
| -  Evaluator.initWorld(homedir, [], new NodeFileSystem());
 | 
| -
 | 
| -  evaluator() => new Evaluator(new NodeJsEvaluator());
 | 
| -  eval(String dart) => evaluator().eval(dart);
 | 
| -
 | 
| -  group('Evaluation works correctly for', () {
 | 
| -    test('simple expressions', () {
 | 
| -      Expect.equals(3, eval('1 + 2'));
 | 
| -      Expect.equals('foobar', eval('"foo" + "bar"'));
 | 
| -    });
 | 
| -
 | 
| -    test('built-in methods', () {
 | 
| -      Expect.equals(2, eval('(2.3).round()'));
 | 
| -      Expect.isTrue(eval('"foobar".contains("oba")'));
 | 
| -    });
 | 
| -
 | 
| -    test('user-defined top-level functions', () {
 | 
| -      var ev = evaluator();
 | 
| -      ev.eval('foo(a) => a + 2');
 | 
| -      Expect.equals(3, ev.eval('foo(1)'));
 | 
| -
 | 
| -      ev.eval('bar(b) => "foo" + foo(b)');
 | 
| -      Expect.equals("foo3", ev.eval('bar(1)'));
 | 
| -    });
 | 
| -
 | 
| -    test('user-defined variables', () {
 | 
| -      var ev = evaluator();
 | 
| -      ev.eval('a = 3');
 | 
| -      Expect.equals(5, ev.eval('2 + a'));
 | 
| -
 | 
| -      ev.eval('b = a + 4');
 | 
| -      Expect.equals(21, ev.eval('b * 3'));
 | 
| -    });
 | 
| -
 | 
| -    test('redefining variables', () {
 | 
| -      var ev = evaluator();
 | 
| -      ev.eval('a = 3');
 | 
| -      Expect.equals(3, ev.eval('a'));
 | 
| -      ev.eval('a = 4');
 | 
| -      Expect.equals(4, ev.eval('a'));
 | 
| -    });
 | 
| -
 | 
| -    test('redefining functions', () {
 | 
| -      var ev = evaluator();
 | 
| -      ev.eval('int foo() => 3');
 | 
| -      Expect.equals(3, ev.eval('foo()'));
 | 
| -      ev.eval('String foo(int a) => "foo" + a');
 | 
| -      Expect.equals("foo12", ev.eval('foo(12)'));
 | 
| -    });
 | 
| -
 | 
| -    test('user-defined classes', () {
 | 
| -      var ev = evaluator();
 | 
| -      ev.eval('class Foo { int a; Foo(this.a); foo(b) => a + b; }');
 | 
| -      ev.eval('f = new Foo(5)');
 | 
| -      Expect.equals(5, ev.eval('f.a'));
 | 
| -      Expect.equals(9, ev.eval('f.foo(4)'));
 | 
| -    });
 | 
| -
 | 
| -    test('list literals', () {
 | 
| -      var ev = evaluator();
 | 
| -      // Coerce to a string because the evaluation context can define methods
 | 
| -      // differently than the primary context.
 | 
| -      Expect.equals('1,2,3', ev.eval('[1, 2, 3].toString()'));
 | 
| -    });
 | 
| -
 | 
| -    test('map literals', () {
 | 
| -      var ev = evaluator();
 | 
| -      // Coerce to a string because the evaluation context can define methods
 | 
| -      // differently than the primary context.
 | 
| -      Expect.equals('a,b', ev.eval("({'a': 1, 'b': 2}).getKeys().toString()"));
 | 
| -      Expect.equals('1,2', ev.eval("({'a': 1, 'b': 2}).getValues().toString()"));
 | 
| -    });
 | 
| -  });
 | 
| -
 | 
| -  group('The parser is flexible enough to', () {
 | 
| -    test('allow semicolons or not', () {
 | 
| -      Expect.equals(2, eval('1 + 1;'));
 | 
| -      Expect.equals(2, eval('1 + 1'));
 | 
| -    });
 | 
| -
 | 
| -    test('allow "var" or not', () {
 | 
| -      var ev = evaluator();
 | 
| -      ev.eval('var a = 1');
 | 
| -      Expect.equals(1, ev.eval('a'));
 | 
| -      ev.eval('b = 2');
 | 
| -      Expect.equals(2, ev.eval('b'));
 | 
| -    });
 | 
| -
 | 
| -    // TODO(nweiz): make this work
 | 
| -    // test('parse maps with or without parentheses', () {
 | 
| -    //   var ev = evaluator();
 | 
| -    //   // Coerce to a string because the evaluation context can define methods
 | 
| -    //   // differently than the primary context.
 | 
| -    //   Expect.equals('a,b', ev.eval("{'a': 1, 'b': 2}.getKeys().toString()"));
 | 
| -    //   Expect.equals('a,b', ev.eval("({'a': 1, 'b': 2}).getKeys().toString()"));
 | 
| -    // });
 | 
| -  });
 | 
| -}
 | 
| 
 |