@@ -6,6 +6,8 @@ import 'package:guinness/guinness.dart' as gns;
66
77import 'package:angular2/src/platform/dom/dom_adapter.dart' show DOM;
88
9+ import 'package:angular2/src/facade/lang.dart' show isString;
10+
911Expect expect (actual, [matcher]) {
1012 final expect = new Expect (actual);
1113 if (matcher != null ) expect.to (matcher);
@@ -14,6 +16,18 @@ Expect expect(actual, [matcher]) {
1416
1517const _u = const Object ();
1618
19+ bool elementContainsStyle (element, styles) {
20+ var allPassed = true ;
21+ if (isString (styles)) {
22+ allPassed = DOM .hasStyle (element, styles);
23+ } else {
24+ styles.forEach ((prop, style) {
25+ allPassed = allPassed && DOM .hasStyle (element, prop, style);
26+ });
27+ }
28+ return allPassed;
29+ }
30+
1731expectErrorMessage (actual, expectedMessage) {
1832 expect (actual.toString ()).toContain (expectedMessage);
1933}
@@ -38,6 +52,9 @@ class Expect extends gns.Expect {
3852 void toBePromise () => gns.guinness.matchers.toBeTrue (actual is Future );
3953 void toHaveCssClass (className) =>
4054 gns.guinness.matchers.toBeTrue (DOM .hasClass (actual, className));
55+ void toHaveCssStyle (styles) {
56+ gns.guinness.matchers.toBeTrue (elementContainsStyle (actual, styles));
57+ }
4158 void toImplement (expected) => toBeA (expected);
4259 void toBeNaN () =>
4360 gns.guinness.matchers.toBeTrue (double .NAN .compareTo (actual) == 0 );
@@ -78,6 +95,9 @@ class NotExpect extends gns.NotExpect {
7895 void toBePromise () => gns.guinness.matchers.toBeFalse (actual is Future );
7996 void toHaveCssClass (className) =>
8097 gns.guinness.matchers.toBeFalse (DOM .hasClass (actual, className));
98+ void toHaveCssStyle (styles) {
99+ gns.guinness.matchers.toBeFalse (elementContainsStyle (actual, styles));
100+ }
81101 void toBeNull () => gns.guinness.matchers.toBeFalse (actual == null );
82102 Function get _expect => gns.guinness.matchers.expect;
83103}
0 commit comments