test(matchers): add support for toHaveCssStyle
matcher
This commit is contained in:
@ -4,6 +4,7 @@ import 'dart:html';
|
||||
import 'package:angular2/platform/common_dom.dart' show setRootDomAdapter;
|
||||
import 'generic_browser_adapter.dart' show GenericBrowserDomAdapter;
|
||||
import 'package:angular2/src/facade/browser.dart';
|
||||
import 'package:angular2/src/facade/lang.dart' show isBlank, isPresent;
|
||||
import 'dart:js' as js;
|
||||
|
||||
// WARNING: Do not expose outside this class. Parsing HTML using this
|
||||
@ -335,6 +336,11 @@ class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
element.style.setProperty(stylename, stylevalue);
|
||||
}
|
||||
|
||||
bool hasStyle(Element element, String stylename, [String stylevalue]) {
|
||||
var value = this.getStyle(element, stylename);
|
||||
return isPresent(stylevalue) ? value == stylevalue : value.length > 0;
|
||||
}
|
||||
|
||||
void removeStyle(Element element, String stylename) {
|
||||
element.style.removeProperty(stylename);
|
||||
}
|
||||
|
@ -207,6 +207,10 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
|
||||
}
|
||||
removeStyle(element, stylename: string) { element.style[stylename] = null; }
|
||||
getStyle(element, stylename: string): string { return element.style[stylename]; }
|
||||
hasStyle(element, stylename: string, stylevalue: string = null): boolean {
|
||||
var value = this.getStyle(element, stylename) || '';
|
||||
return stylevalue ? value == stylevalue : value.length > 0;
|
||||
}
|
||||
tagName(element): string { return element.tagName; }
|
||||
attributeMap(element): Map<string, string> {
|
||||
var res = new Map<string, string>();
|
||||
|
@ -89,6 +89,7 @@ export abstract class DomAdapter {
|
||||
abstract setStyle(element, stylename: string, stylevalue: string);
|
||||
abstract removeStyle(element, stylename: string);
|
||||
abstract getStyle(element, stylename: string): string;
|
||||
abstract hasStyle(element, stylename: string, stylevalue?: string): boolean;
|
||||
abstract tagName(element): string;
|
||||
abstract attributeMap(element): Map<string, string>;
|
||||
abstract hasAttribute(element, attribute: string): boolean;
|
||||
|
@ -6,6 +6,8 @@ import 'package:html/dom.dart';
|
||||
import 'package:angular2/platform/common_dom.dart';
|
||||
import 'package:angular2/src/compiler/xhr.dart';
|
||||
|
||||
import 'package:angular2/src/facade/lang.dart' show isBlank, isPresent;
|
||||
|
||||
const _attrToPropMap = const {
|
||||
'innerHtml': 'innerHTML',
|
||||
'readonly': 'readOnly',
|
||||
@ -265,6 +267,10 @@ abstract class AbstractHtml5LibAdapter implements DomAdapter {
|
||||
throw 'not implemented';
|
||||
}
|
||||
|
||||
bool hasStyle(Element element, String styleName, [String styleValue]) {
|
||||
throw 'not implemented';
|
||||
}
|
||||
|
||||
removeStyle(element, String stylename) {
|
||||
throw 'not implemented';
|
||||
}
|
||||
|
@ -371,6 +371,10 @@ export class Parse5DomAdapter extends DomAdapter {
|
||||
hasClass(element, classname: string): boolean {
|
||||
return ListWrapper.contains(this.classList(element), classname);
|
||||
}
|
||||
hasStyle(element, stylename: string, stylevalue: string = null): boolean {
|
||||
var value = this.getStyle(element, stylename) || '';
|
||||
return stylevalue ? value == stylevalue : value.length > 0;
|
||||
}
|
||||
/** @internal */
|
||||
_readStyleAttribute(element) {
|
||||
var styleMap = {};
|
||||
|
Reference in New Issue
Block a user