Currently, core depends on DomRenderer, which depends on the browser. This means that if you depend on angular2/core, you will always pull in the browser dom adapter and the browser render, regardless if you need them or not. This PR moves the browser dom adapter and the browser renderer out of core. BREAKING CHANGE If you import browser adapter or dom renderer directly (not via angular2/core), you will have to change the import path.
56 lines
1.7 KiB
TypeScript
56 lines
1.7 KiB
TypeScript
import {
|
|
AsyncTestCompleter,
|
|
inject,
|
|
ddescribe,
|
|
describe,
|
|
it,
|
|
iit,
|
|
xit,
|
|
expect,
|
|
SpyObject
|
|
} from 'angular2/testing_internal';
|
|
import {SpyElementRef, SpyDomAdapter} from '../../core/spies';
|
|
|
|
import {DOM, DomAdapter} from 'angular2/src/core/dom/dom_adapter';
|
|
|
|
import {Ruler, Rectangle} from 'angular2/src/platform/browser/ruler';
|
|
import {createRectangle} from './rectangle_mock';
|
|
|
|
function assertDimensions(rect: Rectangle, left, right, top, bottom, width, height) {
|
|
expect(rect.left).toEqual(left);
|
|
expect(rect.right).toEqual(right);
|
|
expect(rect.top).toEqual(top);
|
|
expect(rect.bottom).toEqual(bottom);
|
|
expect(rect.width).toEqual(width);
|
|
expect(rect.height).toEqual(height);
|
|
}
|
|
|
|
export function main() {
|
|
describe('ruler service', () => {
|
|
|
|
it('should allow measuring ElementRefs', inject([AsyncTestCompleter], (async) => {
|
|
var ruler = new Ruler(SpyObject.stub(
|
|
new SpyDomAdapter(), {'getBoundingClientRect': createRectangle(10, 20, 200, 100)}));
|
|
var elRef = <any>new SpyElementRef();
|
|
ruler.measure(elRef).then((rect) => {
|
|
assertDimensions(rect, 10, 210, 20, 120, 200, 100);
|
|
async.done();
|
|
});
|
|
}));
|
|
|
|
|
|
it('should return 0 for all rectangle values while measuring elements in a document fragment',
|
|
inject([AsyncTestCompleter], (async) => {
|
|
var ruler = new Ruler(DOM);
|
|
var elRef = <any>new SpyElementRef();
|
|
elRef.prop("nativeElement", DOM.createElement('div'));
|
|
ruler.measure(elRef).then((rect) => {
|
|
// here we are using an element created in a doc fragment so all the measures will come
|
|
// back as 0
|
|
assertDimensions(rect, 0, 0, 0, 0, 0, 0);
|
|
async.done();
|
|
});
|
|
}));
|
|
|
|
});
|
|
} |