feat(compiler): DOM adapters + html5lib implementation; misc fixes
This commit is contained in:
@ -1,6 +1,9 @@
|
||||
import {DOM, document, location} from 'angular2/src/facade/dom';
|
||||
import {BrowserDomAdapter} from 'angular2/src/dom/browser_adapter';
|
||||
import {document} from 'angular2/src/facade/browser';
|
||||
import {NumberWrapper, BaseException, isBlank} from 'angular2/src/facade/lang';
|
||||
|
||||
var DOM = new BrowserDomAdapter();
|
||||
|
||||
export function getIntParameter(name:string) {
|
||||
return NumberWrapper.parseInt(getStringParameter(name), 10);
|
||||
}
|
||||
|
@ -1,13 +1,14 @@
|
||||
library test_lib.test_lib;
|
||||
|
||||
import 'package:guinness/guinness_html.dart' as gns;
|
||||
export 'package:guinness/guinness_html.dart' hide Expect, expect, NotExpect, beforeEach, it, iit;
|
||||
import 'package:guinness/guinness.dart' as gns;
|
||||
export 'package:guinness/guinness.dart' hide Expect, expect, NotExpect, beforeEach, it, iit;
|
||||
import 'package:unittest/unittest.dart' hide expect;
|
||||
import 'dart:mirrors';
|
||||
import 'dart:async';
|
||||
import 'package:angular2/src/reflection/reflection.dart';
|
||||
import 'package:angular2/src/reflection/reflection_capabilities.dart';
|
||||
import 'package:collection/equality.dart';
|
||||
import 'package:angular2/src/dom/dom_adapter.dart' show DOM;
|
||||
|
||||
bool IS_DARTIUM = true;
|
||||
|
||||
@ -29,6 +30,7 @@ class Expect extends gns.Expect {
|
||||
void toBePromise() => _expect(actual is Future, equals(true));
|
||||
void toImplement(expected) => toBeA(expected);
|
||||
void toBeNaN() => _expect(double.NAN.compareTo(actual) == 0, equals(true));
|
||||
void toHaveText(expected) => _expect(elementText(actual), expected);
|
||||
Function get _expect => gns.guinness.matchers.expect;
|
||||
}
|
||||
|
||||
@ -43,7 +45,6 @@ class NotExpect extends gns.NotExpect {
|
||||
}
|
||||
|
||||
beforeEach(fn) {
|
||||
gns.guinnessEnableHtmlMatchers();
|
||||
gns.beforeEach(_enableReflection(fn));
|
||||
}
|
||||
|
||||
@ -137,3 +138,32 @@ class _FixedObjToData {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
String elementText(n) {
|
||||
hasNodes(n) {
|
||||
var children = DOM.childNodes(n);
|
||||
return children != null && children.length > 0;
|
||||
}
|
||||
|
||||
if (n is Iterable) {
|
||||
return n.map((nn) => elementText(nn)).join("");
|
||||
}
|
||||
|
||||
if (DOM.isCommentNode(n)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (DOM.isElementNode(n) && DOM.tagName(n) == 'CONTENT') {
|
||||
return elementText(n.getDistributedNodes());
|
||||
}
|
||||
|
||||
if (DOM.hasShadowRoot(n)) {
|
||||
return elementText(DOM.childNodesAsList(n.shadowRoot));
|
||||
}
|
||||
|
||||
if (hasNodes(n)) {
|
||||
return elementText(DOM.childNodesAsList(n));
|
||||
}
|
||||
|
||||
return DOM.getText(n);
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {DOM} from 'angular2/src/facade/dom';
|
||||
import {DOM} from 'angular2/src/dom/dom_adapter';
|
||||
|
||||
export {proxy} from 'rtts_assert/rtts_assert';
|
||||
export var describe = window.describe;
|
||||
@ -150,7 +150,6 @@ export class SpyObject {
|
||||
|
||||
|
||||
function elementText(n) {
|
||||
var hasShadowRoot = (n) => n instanceof Element && n.shadowRoot;
|
||||
var hasNodes = (n) => {var children = DOM.childNodes(n); return children && children.length > 0;}
|
||||
|
||||
if (n instanceof Comment) return '';
|
||||
@ -158,8 +157,8 @@ function elementText(n) {
|
||||
if (n instanceof Array) return n.map((nn) => elementText(nn)).join("");
|
||||
if (n instanceof Element && DOM.tagName(n) == 'CONTENT')
|
||||
return elementText(Array.prototype.slice.apply(n.getDistributedNodes()));
|
||||
if (hasShadowRoot(n)) return elementText(DOM.childNodesAsList(n.shadowRoot));
|
||||
if (DOM.hasShadowRoot(n)) return elementText(DOM.childNodesAsList(n.shadowRoot));
|
||||
if (hasNodes(n)) return elementText(DOM.childNodesAsList(n));
|
||||
|
||||
return n.textContent;
|
||||
}
|
||||
}
|
||||
|
2
modules/angular2/src/test_lib/utils.js
vendored
2
modules/angular2/src/test_lib/utils.js
vendored
@ -1,5 +1,5 @@
|
||||
import {List, ListWrapper} from 'angular2/src/facade/collection';
|
||||
import {DOM} from 'angular2/src/facade/dom';
|
||||
import {DOM} from 'angular2/src/dom/dom_adapter';
|
||||
import {isPresent} from 'angular2/src/facade/lang';
|
||||
|
||||
export class Log {
|
||||
|
Reference in New Issue
Block a user