jasmine 0.4.6 → 0.10.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -89,7 +89,38 @@ jasmine.getEnv = function() {
89
89
  * @returns {Boolean}
90
90
  */
91
91
  jasmine.isArray_ = function(value) {
92
- return Object.prototype.toString.apply(value) === '[object Array]';
92
+ return jasmine.isA_("Array", value);
93
+ };
94
+
95
+ /**
96
+ * @ignore
97
+ * @private
98
+ * @param value
99
+ * @returns {Boolean}
100
+ */
101
+ jasmine.isString_ = function(value) {
102
+ return jasmine.isA_("String", value);
103
+ };
104
+
105
+ /**
106
+ * @ignore
107
+ * @private
108
+ * @param value
109
+ * @returns {Boolean}
110
+ */
111
+ jasmine.isNumber_ = function(value) {
112
+ return jasmine.isA_("Number", value);
113
+ };
114
+
115
+ /**
116
+ * @ignore
117
+ * @private
118
+ * @param {String} typeName
119
+ * @param value
120
+ * @returns {Boolean}
121
+ */
122
+ jasmine.isA_ = function(typeName, value) {
123
+ return Object.prototype.toString.apply(value) === '[object ' + typeName + ']';
93
124
  };
94
125
 
95
126
  /**
@@ -794,6 +825,12 @@ jasmine.Env.prototype.equals_ = function(a, b, mismatchKeys, mismatchValues) {
794
825
  mismatchKeys = mismatchKeys || [];
795
826
  mismatchValues = mismatchValues || [];
796
827
 
828
+ for (var i = 0; i < this.equalityTesters_.length; i++) {
829
+ var equalityTester = this.equalityTesters_[i];
830
+ var result = equalityTester(a, b, this, mismatchKeys, mismatchValues);
831
+ if (result !== jasmine.undefined) return result;
832
+ }
833
+
797
834
  if (a === b) return true;
798
835
 
799
836
  if (a === jasmine.undefined || a === null || b === jasmine.undefined || b === null) {
@@ -816,14 +853,16 @@ jasmine.Env.prototype.equals_ = function(a, b, mismatchKeys, mismatchValues) {
816
853
  return b.matches(a);
817
854
  }
818
855
 
819
- if (typeof a === "object" && typeof b === "object") {
820
- return this.compareObjects_(a, b, mismatchKeys, mismatchValues);
856
+ if (jasmine.isString_(a) && jasmine.isString_(b)) {
857
+ return (a == b);
821
858
  }
822
859
 
823
- for (var i = 0; i < this.equalityTesters_.length; i++) {
824
- var equalityTester = this.equalityTesters_[i];
825
- var result = equalityTester(a, b, this, mismatchKeys, mismatchValues);
826
- if (result !== jasmine.undefined) return result;
860
+ if (jasmine.isNumber_(a) && jasmine.isNumber_(b)) {
861
+ return (a == b);
862
+ }
863
+
864
+ if (typeof a === "object" && typeof b === "object") {
865
+ return this.compareObjects_(a, b, mismatchKeys, mismatchValues);
827
866
  }
828
867
 
829
868
  //Straight check
@@ -1001,21 +1040,28 @@ jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
1001
1040
  * @param actual
1002
1041
  * @param {jasmine.Spec} spec
1003
1042
  */
1004
- jasmine.Matchers = function(env, actual, spec) {
1043
+ jasmine.Matchers = function(env, actual, spec, opt_isNot) {
1005
1044
  this.env = env;
1006
1045
  this.actual = actual;
1007
1046
  this.spec = spec;
1047
+ this.isNot = opt_isNot || false;
1008
1048
  this.reportWasCalled_ = false;
1009
1049
  };
1010
1050
 
1051
+ // todo: @deprecated as of Jasmine 0.11, remove soon [xw]
1011
1052
  jasmine.Matchers.pp = function(str) {
1012
- return jasmine.util.htmlEscape(jasmine.pp(str));
1053
+ throw new Error("jasmine.Matchers.pp() is no longer supported, please use jasmine.pp() instead!");
1054
+ this.report();
1013
1055
  };
1014
1056
 
1015
- /** @deprecated */
1057
+ /** @deprecated Deprecated as of Jasmine 0.10. Rewrite your custom matchers to return true or false. */
1016
1058
  jasmine.Matchers.prototype.report = function(result, failing_message, details) {
1017
- // todo first: report deprecation warning [xw]
1018
- // todo later: throw new Error("As of jasmine 0.xx, custom matchers must be implemented differently -- please see jasmine docs");
1059
+ // todo: report a deprecation warning [xw]
1060
+
1061
+ if (this.isNot) {
1062
+ throw new Error("As of jasmine 0.11, custom matchers must be implemented differently -- please see jasmine docs");
1063
+ }
1064
+
1019
1065
  this.reportWasCalled_ = true;
1020
1066
  var expectationResult = new jasmine.ExpectationResult({
1021
1067
  passed: result,
@@ -1038,15 +1084,23 @@ jasmine.Matchers.matcherFn_ = function(matcherName, matcherFunction) {
1038
1084
  return function() {
1039
1085
  var matcherArgs = jasmine.util.argsToArray(arguments);
1040
1086
  var result = matcherFunction.apply(this, arguments);
1087
+
1088
+ if (this.isNot) {
1089
+ result = !result;
1090
+ }
1091
+
1041
1092
  if (this.reportWasCalled_) return result;
1042
1093
 
1043
1094
  var message;
1044
1095
  if (!result) {
1045
1096
  if (this.message) {
1046
1097
  message = this.message.apply(this, arguments);
1098
+ if (jasmine.isArray_(message)) {
1099
+ message = message[this.isNot ? 1 : 0];
1100
+ }
1047
1101
  } else {
1048
1102
  var englishyPredicate = matcherName.replace(/[A-Z]/g, function(s) { return ' ' + s.toLowerCase(); });
1049
- message = "Expected " + jasmine.pp(this.actual) + " " + englishyPredicate;
1103
+ message = "Expected " + jasmine.pp(this.actual) + (this.isNot ? " not " : " ") + englishyPredicate;
1050
1104
  if (matcherArgs.length > 0) {
1051
1105
  for (var i = 0; i < matcherArgs.length; i++) {
1052
1106
  if (i > 0) message += ",";
@@ -1167,7 +1221,7 @@ jasmine.Matchers.prototype.wasCalled = function() {
1167
1221
  }
1168
1222
 
1169
1223
  if (!jasmine.isSpy(this.actual)) {
1170
- throw new Error('Expected a spy, but got ' + jasmine.Matchers.pp(this.actual) + '.');
1224
+ throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
1171
1225
  }
1172
1226
 
1173
1227
  this.message = function() {
@@ -1186,7 +1240,7 @@ jasmine.Matchers.prototype.wasNotCalled = function() {
1186
1240
  }
1187
1241
 
1188
1242
  if (!jasmine.isSpy(this.actual)) {
1189
- throw new Error('Expected a spy, but got ' + jasmine.Matchers.pp(this.actual) + '.');
1243
+ throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
1190
1244
  }
1191
1245
 
1192
1246
  this.message = function() {
@@ -1205,7 +1259,7 @@ jasmine.Matchers.prototype.wasNotCalled = function() {
1205
1259
  jasmine.Matchers.prototype.wasCalledWith = function() {
1206
1260
  var expectedArgs = jasmine.util.argsToArray(arguments);
1207
1261
  if (!jasmine.isSpy(this.actual)) {
1208
- throw new Error('Expected a spy, but got ' + jasmine.Matchers.pp(this.actual) + '.');
1262
+ throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
1209
1263
  }
1210
1264
  this.message = function() {
1211
1265
  if (this.actual.callCount == 0) {
@@ -1221,7 +1275,7 @@ jasmine.Matchers.prototype.wasCalledWith = function() {
1221
1275
  jasmine.Matchers.prototype.wasNotCalledWith = function() {
1222
1276
  var expectedArgs = jasmine.util.argsToArray(arguments);
1223
1277
  if (!jasmine.isSpy(this.actual)) {
1224
- throw new Error('Expected a spy, but got ' + jasmine.Matchers.pp(this.actual) + '.');
1278
+ throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
1225
1279
  }
1226
1280
 
1227
1281
  this.message = function() {
@@ -1818,7 +1872,9 @@ jasmine.Spec.prototype.addMatcherResult = function(result) {
1818
1872
  };
1819
1873
 
1820
1874
  jasmine.Spec.prototype.expect = function(actual) {
1821
- return new (this.getMatchersClass_())(this.env, actual, this);
1875
+ var positive = new (this.getMatchersClass_())(this.env, actual, this);
1876
+ positive.not = new (this.getMatchersClass_())(this.env, actual, this, true);
1877
+ return positive;
1822
1878
  };
1823
1879
 
1824
1880
  jasmine.Spec.prototype.waits = function(timeout) {
@@ -1867,8 +1923,7 @@ jasmine.Spec.prototype.finish = function(onComplete) {
1867
1923
  }
1868
1924
  };
1869
1925
 
1870
- jasmine.Spec.prototype.after = function(doAfter, test) {
1871
-
1926
+ jasmine.Spec.prototype.after = function(doAfter) {
1872
1927
  if (this.queue.isRunning()) {
1873
1928
  this.queue.add(new jasmine.Block(this.env, doAfter, this));
1874
1929
  } else {
@@ -1896,23 +1951,25 @@ jasmine.Spec.prototype.execute = function(onComplete) {
1896
1951
 
1897
1952
  jasmine.Spec.prototype.addBeforesAndAftersToQueue = function() {
1898
1953
  var runner = this.env.currentRunner();
1954
+ var i;
1955
+
1899
1956
  for (var suite = this.suite; suite; suite = suite.parentSuite) {
1900
- for (var i = 0; i < suite.before_.length; i++) {
1957
+ for (i = 0; i < suite.before_.length; i++) {
1901
1958
  this.queue.addBefore(new jasmine.Block(this.env, suite.before_[i], this));
1902
1959
  }
1903
1960
  }
1904
- for (var i = 0; i < runner.before_.length; i++) {
1961
+ for (i = 0; i < runner.before_.length; i++) {
1905
1962
  this.queue.addBefore(new jasmine.Block(this.env, runner.before_[i], this));
1906
1963
  }
1907
1964
  for (i = 0; i < this.afterCallbacks.length; i++) {
1908
1965
  this.queue.add(new jasmine.Block(this.env, this.afterCallbacks[i], this));
1909
1966
  }
1910
1967
  for (suite = this.suite; suite; suite = suite.parentSuite) {
1911
- for (var i = 0; i < suite.after_.length; i++) {
1968
+ for (i = 0; i < suite.after_.length; i++) {
1912
1969
  this.queue.add(new jasmine.Block(this.env, suite.after_[i], this));
1913
1970
  }
1914
1971
  }
1915
- for (var i = 0; i < runner.after_.length; i++) {
1972
+ for (i = 0; i < runner.after_.length; i++) {
1916
1973
  this.queue.add(new jasmine.Block(this.env, runner.after_[i], this));
1917
1974
  }
1918
1975
  };
@@ -2256,6 +2313,6 @@ window.clearInterval = function(timeoutKey) {
2256
2313
  jasmine.version_= {
2257
2314
  "major": 0,
2258
2315
  "minor": 10,
2259
- "build": 1,
2260
- "revision": 1267069453
2316
+ "build": 2,
2317
+ "revision": 1268969696
2261
2318
  };
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jasmine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.10.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rajan Agaskar
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-03-10 00:00:00 -08:00
13
+ date: 2010-03-18 00:00:00 -07:00
14
14
  default_executable: jasmine
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -96,7 +96,7 @@ files:
96
96
  - jasmine/contrib/ruby/run.html
97
97
  - jasmine/lib/TrivialReporter.js
98
98
  - jasmine/lib/consolex.js
99
- - jasmine/lib/jasmine-0.10.1.js
99
+ - jasmine/lib/jasmine-0.10.2.js
100
100
  - jasmine/lib/jasmine.css
101
101
  - jasmine/lib/json2.js
102
102
  - lib/jasmine.rb