Permalink
Browse files

adding a check for the sticky regExp option supported by Firefox and …

…accepted by the ES6. Note that the tests for this case are checking for the support of the sticky parameter. the logic is still tested by the other expect statements in browsers that do not support sticky but will never enter that block as creating a regExp with that flag is not allowed. Coverage is still good. See jasmine/jasmine#234
  • Loading branch information...
1 parent 63ad879 commit d9467317a88d4698dbfaefb8b8f12317b40aaca4 @yopefonic yopefonic committed with Davis W. Frank & Rajan Agaskar Jul 18, 2012
Showing with 13 additions and 0 deletions.
  1. +3 −0 lib/jasmine-core/jasmine.js
  2. +7 −0 spec/core/MatchersSpec.js
  3. +3 −0 src/core/Env.js
@@ -887,6 +887,9 @@ jasmine.Env.prototype.compareRegExps_ = function(a, b, mismatchKeys, mismatchVal
if (a.multiline != b.multiline)
mismatchValues.push("expected modifier m was" + (b.multiline ? " " : " not ") + "set and does not equal the origin modifier");
+ if (a.sticky != b.sticky)
+ mismatchValues.push("expected modifier y was" + (b.sticky ? " " : " not ") + "set and does not equal the origin modifier");
+
return (mismatchValues.length === 0);
};
@@ -80,6 +80,13 @@ describe("jasmine.Matchers", function() {
expect((match(/1/i).toNotEqual(/1/i))).toFail();
expect((match(/[abc]/gm).toEqual(/1/i))).toFail();
expect((match(/[abc]/gm).toNotEqual(/1/i))).toPass();
+
+ // only test if the browser supports the sticky option on a regExp see pull #234
+ if (RegExp.prototype.sticky !== undefined) {
+ var sticky_regexp = new RegExp("[abc]", "y");
+ expect((match(sticky_regexp).toEqual(/1/i))).toFail();
+ expect((match(sticky_regexp).toNotEqual(/1/i))).toPass();
+ }
});
it("toEqual to build an Expectation Result", function() {
View
@@ -181,6 +181,9 @@ jasmine.Env.prototype.compareRegExps_ = function(a, b, mismatchKeys, mismatchVal
if (a.multiline != b.multiline)
mismatchValues.push("expected modifier m was" + (b.multiline ? " " : " not ") + "set and does not equal the origin modifier");
+ if (a.sticky != b.sticky)
+ mismatchValues.push("expected modifier y was" + (b.sticky ? " " : " not ") + "set and does not equal the origin modifier");
+
return (mismatchValues.length === 0);
};

0 comments on commit d946731

Please sign in to comment.