Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8822460

Browse files
committed
chore(browsers): fix failing tests in Firefox
Closes angular#3386
1 parent 53788ef commit 8822460

File tree

10 files changed

+23
-14
lines changed

10 files changed

+23
-14
lines changed

modules/angular2/src/dom/browser_adapter.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,9 @@ class BrowserDomAdapter extends GenericBrowserDomAdapter {
188188
void preventDefault(Event evt) {
189189
evt.preventDefault();
190190
}
191+
bool isPrevented(Event evt) {
192+
return evt.defaultPrevented;
193+
}
191194
String getInnerHTML(Element el) => el.innerHtml;
192195
String getOuterHTML(Element el) => el.outerHtml;
193196
void setInnerHTML(Element el, String value) {

modules/angular2/src/dom/browser_adapter.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
104104
evt.preventDefault();
105105
evt.returnValue = false;
106106
}
107+
isPrevented(evt: Event): boolean {
108+
return evt.defaultPrevented || isPresent(evt.returnValue) && !evt.returnValue;
109+
}
107110
getInnerHTML(el): string { return el.innerHTML; }
108111
getOuterHTML(el): string { return el.outerHTML; }
109112
nodeName(node: Node): string { return node.nodeName; }

modules/angular2/src/dom/dom_adapter.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export class DomAdapter {
4343
createMouseEvent(eventType): any { throw _abstract(); }
4444
createEvent(eventType: string): any { throw _abstract(); }
4545
preventDefault(evt) { throw _abstract(); }
46+
isPrevented(evt): boolean { throw _abstract(); }
4647
getInnerHTML(el): string { throw _abstract(); }
4748
getOuterHTML(el): string { throw _abstract(); }
4849
nodeName(node): string { throw _abstract(); }

modules/angular2/src/dom/html_adapter.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,9 @@ class Html5LibDomAdapter implements DomAdapter {
102102
preventDefault(evt) {
103103
throw 'not implemented';
104104
}
105+
isPrevented(evt) {
106+
throw 'not implemented';
107+
}
105108
getInnerHTML(el) {
106109
return el.innerHtml;
107110
}

modules/angular2/src/dom/parse5_adapter.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ export class Parse5DomAdapter extends DomAdapter {
154154
return evt;
155155
}
156156
preventDefault(evt) { evt.returnValue = false; }
157+
isPrevented(evt): boolean { return isPresent(evt.returnValue) && !evt.returnValue; }
157158
getInnerHTML(el): string { return serializer.serialize(this.templateAwareRoot(el)); }
158159
getOuterHTML(el): string {
159160
serializer.html = '';

modules/angular2/src/render/dom/view/view.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export class DomView {
7979
allowDefaultBehavior =
8080
this.eventDispatcher.dispatchRenderEvent(elementIndex, eventName, evalLocals);
8181
if (!allowDefaultBehavior) {
82-
event.preventDefault();
82+
DOM.preventDefault(event);
8383
}
8484
}
8585
return allowDefaultBehavior;

modules/angular2/test/core/compiler/integration_spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -900,14 +900,14 @@ export function main() {
900900

901901
.createAsync(MyComp)
902902
.then((rootTC) => {
903-
expect(DOM.getChecked(rootTC.componentViewChildren[0].nativeElement))
904-
.toBeFalsy();
905-
expect(DOM.getChecked(rootTC.componentViewChildren[1].nativeElement))
906-
.toBeFalsy();
903+
var dispatchedEvent = DOM.createMouseEvent('click');
904+
var dispatchedEvent2 = DOM.createMouseEvent('click');
907905
DOM.dispatchEvent(rootTC.componentViewChildren[0].nativeElement,
908-
DOM.createMouseEvent('click'));
906+
dispatchedEvent);
909907
DOM.dispatchEvent(rootTC.componentViewChildren[1].nativeElement,
910-
DOM.createMouseEvent('click'));
908+
dispatchedEvent2);
909+
expect(DOM.isPrevented(dispatchedEvent)).toBe(true);
910+
expect(DOM.isPrevented(dispatchedEvent2)).toBe(false);
911911
expect(DOM.getChecked(rootTC.componentViewChildren[0].nativeElement))
912912
.toBeFalsy();
913913
expect(DOM.getChecked(rootTC.componentViewChildren[1].nativeElement))

modules/angular2/test/dom/dom_adapter_spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export function main() {
3434

3535
expect(clone).not.toBe(el1);
3636
DOM.setAttribute(clone, 'test', '1');
37-
expect(DOM.getOuterHTML(clone)).toEqual('<div x="y" test="1">a<span>b</span></div>');
37+
expect(stringifyElement(clone)).toEqual('<div test="1" x="y">a<span>b</span></div>');
3838
expect(DOM.getAttribute(el1, 'test')).toBeFalsy();
3939

4040
var cNodes = DOM.childNodes(clone);

modules/angular2/test/render/dom/view/proto_view_merger_integration_spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,8 @@ export function main() {
267267
tb.merge([rootProtoViewDto, componentProtoViewDto])
268268
.then(mergeMappings => {
269269
var domPv = resolveInternalDomProtoView(mergeMappings.mergedProtoViewRef);
270-
expect(DOM.getInnerHTML(templateRoot(domPv)))
271-
.toEqual('<root class="ng-binding" a="b"></root>');
270+
expect(stringifyElement(templateRoot(domPv)))
271+
.toEqual('<template><root a="b" class="ng-binding"></root></template>');
272272
async.done();
273273
});
274274
});

modules/angular2/test/router/outlet_spec.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -541,8 +541,7 @@ export function main() {
541541
rootTC.detectChanges();
542542

543543
var dispatchedEvent = clickOnElement(rootTC);
544-
expect(dispatchedEvent.defaultPrevented || !dispatchedEvent.returnValue)
545-
.toBe(true);
544+
expect(DOM.isPrevented(dispatchedEvent)).toBe(true);
546545

547546
// router navigation is async.
548547
rtr.subscribe((_) => {
@@ -563,8 +562,7 @@ export function main() {
563562
rootTC.detectChanges();
564563

565564
var dispatchedEvent = clickOnElement(rootTC);
566-
expect(dispatchedEvent.defaultPrevented || !dispatchedEvent.returnValue)
567-
.toBe(true);
565+
expect(DOM.isPrevented(dispatchedEvent)).toBe(true);
568566

569567
// router navigation is async.
570568
rtr.subscribe((_) => {

0 commit comments

Comments
 (0)