| Index: third_party/pkg/angular/test/core_dom/block_spec.dart
 | 
| diff --git a/third_party/pkg/angular/test/core_dom/block_spec.dart b/third_party/pkg/angular/test/core_dom/block_spec.dart
 | 
| deleted file mode 100644
 | 
| index 3c7559fc4cf8303560e3a95af3c1289e139bca1f..0000000000000000000000000000000000000000
 | 
| --- a/third_party/pkg/angular/test/core_dom/block_spec.dart
 | 
| +++ /dev/null
 | 
| @@ -1,272 +0,0 @@
 | 
| -library block_spec;
 | 
| -
 | 
| -import '../_specs.dart';
 | 
| -
 | 
| -class Log {
 | 
| -  List<String> log = <String>[];
 | 
| -
 | 
| -  add(String msg) => log.add(msg);
 | 
| -}
 | 
| -
 | 
| -@NgDirective(children: NgAnnotation.TRANSCLUDE_CHILDREN, selector: 'foo')
 | 
| -class LoggerBlockDirective {
 | 
| -  LoggerBlockDirective(BlockHole hole, BlockFactory blockFactory,
 | 
| -      BoundBlockFactory boundBlockFactory, Logger logger) {
 | 
| -    assert(hole != null);
 | 
| -    assert(blockFactory != null);
 | 
| -    assert(boundBlockFactory != null);
 | 
| -
 | 
| -    logger.add(hole);
 | 
| -    logger.add(boundBlockFactory);
 | 
| -    logger.add(blockFactory);
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -@NgDirective(selector: 'dir-a')
 | 
| -class ADirective {
 | 
| -  ADirective(Log log) {
 | 
| -    log.add('ADirective');
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -@NgDirective(selector: 'dir-b')
 | 
| -class BDirective {
 | 
| -  BDirective(Log log) {
 | 
| -    log.add('BDirective');
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -@NgFilter(name:'filterA')
 | 
| -class AFilter {
 | 
| -  Log log;
 | 
| -
 | 
| -  AFilter(this.log) {
 | 
| -    log.add('AFilter');
 | 
| -  }
 | 
| -
 | 
| -  call(value) => value;
 | 
| -}
 | 
| -
 | 
| -@NgFilter(name:'filterB')
 | 
| -class BFilter {
 | 
| -  Log log;
 | 
| -
 | 
| -  BFilter(this.log) {
 | 
| -    log.add('BFilter');
 | 
| -  }
 | 
| -
 | 
| -  call(value) => value;
 | 
| -}
 | 
| -
 | 
| -
 | 
| -main() {
 | 
| -  describe('Block', () {
 | 
| -    var anchor;
 | 
| -    var $rootElement;
 | 
| -    var blockCache;
 | 
| -
 | 
| -    beforeEach(() {
 | 
| -      $rootElement = $('<div></div>');
 | 
| -    });
 | 
| -
 | 
| -    describe('mutation', () {
 | 
| -      var a, b;
 | 
| -      var expando = new Expando();
 | 
| -
 | 
| -      beforeEach(inject((Injector injector, Profiler perf) {
 | 
| -        $rootElement.html('<!-- anchor -->');
 | 
| -        anchor = new BlockHole($rootElement.contents().eq(0));
 | 
| -        a = (new BlockFactory($('<span>A</span>a'), [], perf, expando))(injector);
 | 
| -        b = (new BlockFactory($('<span>B</span>b'), [], perf, expando))(injector);
 | 
| -      }));
 | 
| -
 | 
| -
 | 
| -      describe('insertAfter', () {
 | 
| -        it('should insert block after anchor block', () {
 | 
| -          a.insertAfter(anchor);
 | 
| -
 | 
| -          expect($rootElement.html()).toEqual('<!-- anchor --><span>A</span>a');
 | 
| -          expect(anchor.next).toBe(a);
 | 
| -          expect(anchor.previous).toBe(null);
 | 
| -          expect(a.next).toBe(null);
 | 
| -          expect(a.previous).toBe(anchor);
 | 
| -        });
 | 
| -
 | 
| -
 | 
| -        it('should insert multi element block after another multi element block', () {
 | 
| -          b.insertAfter(a.insertAfter(anchor));
 | 
| -
 | 
| -          expect($rootElement.html()).toEqual('<!-- anchor --><span>A</span>a<span>B</span>b');
 | 
| -          expect(anchor.next).toBe(a);
 | 
| -          expect(anchor.previous).toBe(null);
 | 
| -          expect(a.next).toBe(b);
 | 
| -          expect(a.previous).toBe(anchor);
 | 
| -          expect(b.next).toBe(null);
 | 
| -          expect(b.previous).toBe(a);
 | 
| -        });
 | 
| -
 | 
| -
 | 
| -        it('should insert multi element block before another multi element block', () {
 | 
| -          b.insertAfter(anchor);
 | 
| -          a.insertAfter(anchor);
 | 
| -
 | 
| -          expect($rootElement.html()).toEqual('<!-- anchor --><span>A</span>a<span>B</span>b');
 | 
| -          expect(anchor.next).toBe(a);
 | 
| -          expect(anchor.previous).toBe(null);
 | 
| -          expect(a.next).toBe(b);
 | 
| -          expect(a.previous).toBe(anchor);
 | 
| -          expect(b.next).toBe(null);
 | 
| -          expect(b.previous).toBe(a);
 | 
| -        });
 | 
| -      });
 | 
| -
 | 
| -
 | 
| -      describe('remove', () {
 | 
| -        beforeEach(() {
 | 
| -          b.insertAfter(a.insertAfter(anchor));
 | 
| -
 | 
| -          expect($rootElement.text()).toEqual('AaBb');
 | 
| -        });
 | 
| -
 | 
| -        it('should remove the last block', () {
 | 
| -          b.remove();
 | 
| -          expect($rootElement.html()).toEqual('<!-- anchor --><span>A</span>a');
 | 
| -          expect(anchor.next).toBe(a);
 | 
| -          expect(anchor.previous).toBe(null);
 | 
| -          expect(a.next).toBe(null);
 | 
| -          expect(a.previous).toBe(anchor);
 | 
| -          expect(b.next).toBe(null);
 | 
| -          expect(b.previous).toBe(null);
 | 
| -        });
 | 
| -
 | 
| -        it('should remove child blocks from parent pseudo black', () {
 | 
| -          a.remove();
 | 
| -          expect($rootElement.html()).toEqual('<!-- anchor --><span>B</span>b');
 | 
| -          expect(anchor.next).toBe(b);
 | 
| -          expect(anchor.previous).toBe(null);
 | 
| -          expect(a.next).toBe(null);
 | 
| -          expect(a.previous).toBe(null);
 | 
| -          expect(b.next).toBe(null);
 | 
| -          expect(b.previous).toBe(anchor);
 | 
| -        });
 | 
| -
 | 
| -        it('should remove', inject((Logger logger, Injector injector, Profiler perf) {
 | 
| -          a.remove();
 | 
| -          b.remove();
 | 
| -
 | 
| -          // TODO(dart): I really want to do this:
 | 
| -          // class Directive {
 | 
| -          //   Directive(BlockHole $anchor, Logger logger) {
 | 
| -          //     logger.add($anchor);
 | 
| -          //   }
 | 
| -          // }
 | 
| -
 | 
| -          var directiveRef = new DirectiveRef(null,
 | 
| -                                              LoggerBlockDirective,
 | 
| -                                              new NgDirective(children: NgAnnotation.TRANSCLUDE_CHILDREN, selector: 'foo'),
 | 
| -                                              '');
 | 
| -          directiveRef.blockFactory = new BlockFactory($('<b>text</b>'), [], perf, new Expando());
 | 
| -          var outerBlockType = new BlockFactory(
 | 
| -              $('<!--start--><!--end-->'),
 | 
| -              [ 0, [ directiveRef ], null],
 | 
| -              perf,
 | 
| -              new Expando());
 | 
| -
 | 
| -          var outterBlock = outerBlockType(injector);
 | 
| -          // The LoggerBlockDirective caused a BlockHole for innerBlockType to
 | 
| -          // be created at logger[0];
 | 
| -          BlockHole outterAnchor = logger[0];
 | 
| -          BoundBlockFactory outterBoundBlockFactory = logger[1];
 | 
| -
 | 
| -          outterBlock.insertAfter(anchor);
 | 
| -          // outterAnchor is a BlockHole, but it has "elements" set to the 0th element
 | 
| -          // of outerBlockType.  So, calling insertAfter() will insert the new
 | 
| -          // block after the <!--start--> element.
 | 
| -          outterBoundBlockFactory(null).insertAfter(outterAnchor);
 | 
| -
 | 
| -          expect($rootElement.text()).toEqual('text');
 | 
| -
 | 
| -          outterBlock.remove();
 | 
| -
 | 
| -          expect($rootElement.text()).toEqual('');
 | 
| -        }));
 | 
| -      });
 | 
| -
 | 
| -
 | 
| -      describe('moveAfter', () {
 | 
| -        beforeEach(() {
 | 
| -          b.insertAfter(a.insertAfter(anchor));
 | 
| -
 | 
| -          expect($rootElement.text()).toEqual('AaBb');
 | 
| -        });
 | 
| -
 | 
| -
 | 
| -        it('should move last to middle', () {
 | 
| -          b.moveAfter(anchor);
 | 
| -          expect($rootElement.html()).toEqual('<!-- anchor --><span>B</span>b<span>A</span>a');
 | 
| -          expect(anchor.next).toBe(b);
 | 
| -          expect(anchor.previous).toBe(null);
 | 
| -          expect(a.next).toBe(null);
 | 
| -          expect(a.previous).toBe(b);
 | 
| -          expect(b.next).toBe(a);
 | 
| -          expect(b.previous).toBe(anchor);
 | 
| -        });
 | 
| -
 | 
| -
 | 
| -        it('should move middle to last', () {
 | 
| -          a.moveAfter(b);
 | 
| -          expect($rootElement.html()).toEqual('<!-- anchor --><span>B</span>b<span>A</span>a');
 | 
| -          expect(anchor.next).toBe(b);
 | 
| -          expect(anchor.previous).toBe(null);
 | 
| -          expect(a.next).toBe(null);
 | 
| -          expect(a.previous).toBe(b);
 | 
| -          expect(b.next).toBe(a);
 | 
| -          expect(b.previous).toBe(anchor);
 | 
| -        });
 | 
| -      });
 | 
| -    });
 | 
| -
 | 
| -    describe('deferred', () {
 | 
| -
 | 
| -      it('should load directives/filters from the child injector', () {
 | 
| -        Module rootModule = new Module()
 | 
| -          ..type(Probe)
 | 
| -          ..type(Log)
 | 
| -          ..type(AFilter)
 | 
| -          ..type(ADirective);
 | 
| -
 | 
| -        Injector rootInjector =
 | 
| -            new DynamicInjector(modules: [new AngularModule(), rootModule]);
 | 
| -        Log log = rootInjector.get(Log);
 | 
| -        Scope rootScope = rootInjector.get(Scope);
 | 
| -
 | 
| -        Compiler compiler = rootInjector.get(Compiler);
 | 
| -        DirectiveMap directives = rootInjector.get(DirectiveMap);
 | 
| -        compiler(es('<dir-a>{{\'a\' | filterA}}</dir-a><dir-b></dir-b>'), directives)(rootInjector);
 | 
| -        rootScope.apply();
 | 
| -
 | 
| -        expect(log.log, equals(['ADirective', 'AFilter']));
 | 
| -
 | 
| -
 | 
| -        Module childModule = new Module()
 | 
| -          ..type(BFilter)
 | 
| -          ..type(BDirective);
 | 
| -
 | 
| -        var childInjector = forceNewDirectivesAndFilters(rootInjector, [childModule]);
 | 
| -
 | 
| -        DirectiveMap newDirectives = childInjector.get(DirectiveMap);
 | 
| -        compiler(es('<dir-a probe="dirA"></dir-a>{{\'a\' | filterA}}'
 | 
| -            '<dir-b probe="dirB"></dir-b>{{\'b\' | filterB}}'), newDirectives)(childInjector);
 | 
| -        rootScope.apply();
 | 
| -
 | 
| -        expect(log.log, equals(['ADirective', 'AFilter', 'ADirective', 'BDirective', 'BFilter']));
 | 
| -      });
 | 
| -
 | 
| -    });
 | 
| -
 | 
| -    //TODO: tests for attach/detach
 | 
| -    //TODO: animation/transitions
 | 
| -    //TODO: tests for re-usability of blocks
 | 
| -
 | 
| -  });
 | 
| -}
 | 
| 
 |