sinon-rails 1.9.0 → 1.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b1cb98e6422863e4390638e3ef04849675fb94af
4
- data.tar.gz: dfadbf5735f311e238775110b080940c14ccf3bc
3
+ metadata.gz: 82cccc9a5461b8e375a3e1db66455b757cb93e9c
4
+ data.tar.gz: 659d9a9863351e7e2a1e4b3d8ffe45b323d67b36
5
5
  SHA512:
6
- metadata.gz: a339a8ffe6f7adeccecd115c4eaac89689d2297e81f1ef493ca0864b0957e0d3205ac11c4e8d1802abbc9dc1d16e245099485e9681972a894123c01d678405ce
7
- data.tar.gz: 9329e86f48c0cac9270a433d9f67e70fa06ef6dc8e19ec731b1f6f68449940e4f80a2bcc90bff2d5eadc5ce8bae01f63b7bdf22e404cb51798f1039e30b2b9e3
6
+ metadata.gz: a37b15d31f7a7dac38ea977c7fdddd29c303249b1e3367dc6c50b9a66fcd8ce3f6c6ae9c61f10d8af784714075edc3572cb03f76c938244ece17e7f32e0444da
7
+ data.tar.gz: be824a55f2b4d34dc3b7899c74407dec77d39d506d3bcedd7095e30703a915e3516c3be2a186d00db931f7cc3e59d4ed64db1c57c801a5718b901674581c41ff
@@ -1,5 +1,5 @@
1
1
  module Sinon
2
2
  module Rails
3
- VERSION = "1.9.0"
3
+ VERSION = "1.10.3"
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Sinon.JS 1.9.0, 2014/03/05
2
+ * Sinon.JS 1.10.3, 2014/07/11
3
3
  *
4
4
  * @author Christian Johansen (christian@cjohansen.no)
5
5
  * @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS
@@ -35,8 +35,8 @@
35
35
 
36
36
  this.sinon = (function () {
37
37
  var samsam, formatio;
38
- function define(mod, deps, fn) { if (mod == "samsam") { samsam = deps(); } else { formatio = fn(samsam); } }
39
- define.amd = true;
38
+ function define(mod, deps, fn) { if (mod == "samsam") { samsam = deps(); } else if (typeof fn === "function") { formatio = fn(samsam); } }
39
+ define.amd = {};
40
40
  ((typeof define === "function" && define.amd && function (m) { define("samsam", m); }) ||
41
41
  (typeof module === "object" &&
42
42
  function (m) { module.exports = m(); }) || // Node
@@ -655,6 +655,10 @@ var sinon = (function (formatio) {
655
655
  return typeof obj === "function" || !!(obj && obj.constructor && obj.call && obj.apply);
656
656
  }
657
657
 
658
+ function isReallyNaN(val) {
659
+ return typeof val === 'number' && isNaN(val);
660
+ }
661
+
658
662
  function mirrorProperties(target, source) {
659
663
  for (var prop in source) {
660
664
  if (!hasOwn.call(target, prop)) {
@@ -683,19 +687,15 @@ var sinon = (function (formatio) {
683
687
  if (!isFunction(wrappedMethod)) {
684
688
  error = new TypeError("Attempted to wrap " + (typeof wrappedMethod) + " property " +
685
689
  property + " as function");
686
- }
687
-
688
- if (wrappedMethod.restore && wrappedMethod.restore.sinon) {
690
+ } else if (wrappedMethod.restore && wrappedMethod.restore.sinon) {
689
691
  error = new TypeError("Attempted to wrap " + property + " which is already wrapped");
690
- }
691
-
692
- if (wrappedMethod.calledBefore) {
692
+ } else if (wrappedMethod.calledBefore) {
693
693
  var verb = !!wrappedMethod.returns ? "stubbed" : "spied on";
694
694
  error = new TypeError("Attempted to wrap " + property + " which is already " + verb);
695
695
  }
696
696
 
697
697
  if (error) {
698
- if (wrappedMethod._stack) {
698
+ if (wrappedMethod && wrappedMethod._stack) {
699
699
  error.stack += '\n--------------\n' + wrappedMethod._stack;
700
700
  }
701
701
  throw error;
@@ -756,8 +756,13 @@ var sinon = (function (formatio) {
756
756
  if (sinon.match && sinon.match.isMatcher(a)) {
757
757
  return a.test(b);
758
758
  }
759
- if (typeof a != "object" || typeof b != "object") {
760
- return a === b;
759
+
760
+ if (typeof a != 'object' || typeof b != 'object') {
761
+ if (isReallyNaN(a) && isReallyNaN(b)) {
762
+ return true;
763
+ } else {
764
+ return a === b;
765
+ }
761
766
  }
762
767
 
763
768
  if (isElement(a) || isElement(b)) {
@@ -773,7 +778,7 @@ var sinon = (function (formatio) {
773
778
  }
774
779
 
775
780
  if (a instanceof RegExp && b instanceof RegExp) {
776
- return (a.source === b.source) && (a.global === b.global) &&
781
+ return (a.source === b.source) && (a.global === b.global) &&
777
782
  (a.ignoreCase === b.ignoreCase) && (a.multiline === b.multiline);
778
783
  }
779
784
 
@@ -795,6 +800,10 @@ var sinon = (function (formatio) {
795
800
  for (prop in a) {
796
801
  aLength += 1;
797
802
 
803
+ if (!(prop in b)) {
804
+ return false;
805
+ }
806
+
798
807
  if (!deepEqual(a[prop], b[prop])) {
799
808
  return false;
800
809
  }
@@ -940,30 +949,31 @@ var sinon = (function (formatio) {
940
949
  }
941
950
  };
942
951
 
943
- var isNode = typeof module !== "undefined" && module.exports;
952
+ var isNode = typeof module !== "undefined" && module.exports && typeof require == "function";
944
953
  var isAMD = typeof define === 'function' && typeof define.amd === 'object' && define.amd;
945
954
 
955
+ function makePublicAPI(require, exports, module) {
956
+ module.exports = sinon;
957
+ sinon.spy = require("./sinon/spy");
958
+ sinon.spyCall = require("./sinon/call");
959
+ sinon.behavior = require("./sinon/behavior");
960
+ sinon.stub = require("./sinon/stub");
961
+ sinon.mock = require("./sinon/mock");
962
+ sinon.collection = require("./sinon/collection");
963
+ sinon.assert = require("./sinon/assert");
964
+ sinon.sandbox = require("./sinon/sandbox");
965
+ sinon.test = require("./sinon/test");
966
+ sinon.testCase = require("./sinon/test_case");
967
+ sinon.match = require("./sinon/match");
968
+ }
969
+
946
970
  if (isAMD) {
947
- define(function(){
948
- return sinon;
949
- });
971
+ define(makePublicAPI);
950
972
  } else if (isNode) {
951
973
  try {
952
974
  formatio = require("formatio");
953
975
  } catch (e) {}
954
- module.exports = sinon;
955
- module.exports.spy = require("./sinon/spy");
956
- module.exports.spyCall = require("./sinon/call");
957
- module.exports.behavior = require("./sinon/behavior");
958
- module.exports.stub = require("./sinon/stub");
959
- module.exports.mock = require("./sinon/mock");
960
- module.exports.collection = require("./sinon/collection");
961
- module.exports.assert = require("./sinon/assert");
962
- module.exports.sandbox = require("./sinon/sandbox");
963
- module.exports.test = require("./sinon/test");
964
- module.exports.testCase = require("./sinon/test_case");
965
- module.exports.assert = require("./sinon/assert");
966
- module.exports.match = require("./sinon/match");
976
+ makePublicAPI(require, exports, module);
967
977
  }
968
978
 
969
979
  if (formatio) {
@@ -999,7 +1009,7 @@ var sinon = (function (formatio) {
999
1009
  */
1000
1010
 
1001
1011
  (function (sinon) {
1002
- var commonJSModule = typeof module !== 'undefined' && module.exports;
1012
+ var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
1003
1013
 
1004
1014
  if (!sinon && commonJSModule) {
1005
1015
  sinon = require("../sinon");
@@ -1222,10 +1232,12 @@ var sinon = (function (formatio) {
1222
1232
  match.regexp = match.typeOf("regexp");
1223
1233
  match.date = match.typeOf("date");
1224
1234
 
1225
- if (commonJSModule) {
1235
+ sinon.match = match;
1236
+
1237
+ if (typeof define === "function" && define.amd) {
1238
+ define(["module"], function(module) { module.exports = match; });
1239
+ } else if (commonJSModule) {
1226
1240
  module.exports = match;
1227
- } else {
1228
- sinon.match = match;
1229
1241
  }
1230
1242
  }(typeof sinon == "object" && sinon || null));
1231
1243
 
@@ -1247,7 +1259,7 @@ var sinon = (function (formatio) {
1247
1259
  */
1248
1260
 
1249
1261
  (function (sinon) {
1250
- var commonJSModule = typeof module !== 'undefined' && module.exports;
1262
+ var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
1251
1263
  if (!sinon && commonJSModule) {
1252
1264
  sinon = require("../sinon");
1253
1265
  }
@@ -1424,10 +1436,12 @@ var sinon = (function (formatio) {
1424
1436
  }
1425
1437
  createSpyCall.toString = callProto.toString; // used by mocks
1426
1438
 
1427
- if (commonJSModule) {
1439
+ sinon.spyCall = createSpyCall;
1440
+
1441
+ if (typeof define === "function" && define.amd) {
1442
+ define(["module"], function(module) { module.exports = createSpyCall; });
1443
+ } else if (commonJSModule) {
1428
1444
  module.exports = createSpyCall;
1429
- } else {
1430
- sinon.spyCall = createSpyCall;
1431
1445
  }
1432
1446
  }(typeof sinon == "object" && sinon || null));
1433
1447
 
@@ -1448,7 +1462,7 @@ var sinon = (function (formatio) {
1448
1462
  */
1449
1463
 
1450
1464
  (function (sinon) {
1451
- var commonJSModule = typeof module !== 'undefined' && module.exports;
1465
+ var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
1452
1466
  var push = Array.prototype.push;
1453
1467
  var slice = Array.prototype.slice;
1454
1468
  var callId = 0;
@@ -1579,6 +1593,9 @@ var sinon = (function (formatio) {
1579
1593
  push.call(this.args, args);
1580
1594
  push.call(this.callIds, callId++);
1581
1595
 
1596
+ // Make call properties available from within the spied function:
1597
+ createCallProperties.call(this);
1598
+
1582
1599
  try {
1583
1600
  if (matching) {
1584
1601
  returnValue = matching.invoke(func, thisValue, args);
@@ -1597,6 +1614,7 @@ var sinon = (function (formatio) {
1597
1614
  push.call(this.exceptions, exception);
1598
1615
  push.call(this.returnValues, returnValue);
1599
1616
 
1617
+ // Make return value and exception available in the calls:
1600
1618
  createCallProperties.call(this);
1601
1619
 
1602
1620
  if (exception !== undefined) {
@@ -1606,6 +1624,11 @@ var sinon = (function (formatio) {
1606
1624
  return returnValue;
1607
1625
  },
1608
1626
 
1627
+ named: function named(name) {
1628
+ this.displayName = name;
1629
+ return this;
1630
+ },
1631
+
1609
1632
  getCall: function getCall(i) {
1610
1633
  if (i < 0 || i >= this.callCount) {
1611
1634
  return null;
@@ -1831,11 +1854,12 @@ var sinon = (function (formatio) {
1831
1854
  sinon.extend(spy, spyApi);
1832
1855
 
1833
1856
  spy.spyCall = sinon.spyCall;
1857
+ sinon.spy = spy;
1834
1858
 
1835
- if (commonJSModule) {
1859
+ if (typeof define === "function" && define.amd) {
1860
+ define(["module"], function(module) { module.exports = spy; });
1861
+ } else if (commonJSModule) {
1836
1862
  module.exports = spy;
1837
- } else {
1838
- sinon.spy = spy;
1839
1863
  }
1840
1864
  }(typeof sinon == "object" && sinon || null));
1841
1865
 
@@ -1855,7 +1879,7 @@ var sinon = (function (formatio) {
1855
1879
  */
1856
1880
 
1857
1881
  (function (sinon) {
1858
- var commonJSModule = typeof module !== 'undefined' && module.exports;
1882
+ var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
1859
1883
 
1860
1884
  if (!sinon && commonJSModule) {
1861
1885
  sinon = require("../sinon");
@@ -2164,12 +2188,15 @@ var sinon = (function (formatio) {
2164
2188
  }
2165
2189
  }
2166
2190
 
2167
- if (commonJSModule) {
2191
+ sinon.behavior = proto;
2192
+
2193
+ if (typeof define === "function" && define.amd) {
2194
+ define(["module"], function(module) { module.exports = proto; });
2195
+ } else if (commonJSModule) {
2168
2196
  module.exports = proto;
2169
- } else {
2170
- sinon.behavior = proto;
2171
2197
  }
2172
2198
  }(typeof sinon == "object" && sinon || null));
2199
+
2173
2200
  /**
2174
2201
  * @depend ../sinon.js
2175
2202
  * @depend spy.js
@@ -2187,7 +2214,7 @@ var sinon = (function (formatio) {
2187
2214
  */
2188
2215
 
2189
2216
  (function (sinon) {
2190
- var commonJSModule = typeof module !== 'undefined' && module.exports;
2217
+ var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
2191
2218
 
2192
2219
  if (!sinon && commonJSModule) {
2193
2220
  sinon = require("../sinon");
@@ -2322,10 +2349,12 @@ var sinon = (function (formatio) {
2322
2349
  return proto;
2323
2350
  }()));
2324
2351
 
2325
- if (commonJSModule) {
2352
+ sinon.stub = stub;
2353
+
2354
+ if (typeof define === "function" && define.amd) {
2355
+ define(["module"], function(module) { module.exports = stub; });
2356
+ } else if (commonJSModule) {
2326
2357
  module.exports = stub;
2327
- } else {
2328
- sinon.stub = stub;
2329
2358
  }
2330
2359
  }(typeof sinon == "object" && sinon || null));
2331
2360
 
@@ -2345,7 +2374,7 @@ var sinon = (function (formatio) {
2345
2374
  */
2346
2375
 
2347
2376
  (function (sinon) {
2348
- var commonJSModule = typeof module !== 'undefined' && module.exports;
2377
+ var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
2349
2378
  var push = [].push;
2350
2379
  var match;
2351
2380
 
@@ -2771,10 +2800,12 @@ var sinon = (function (formatio) {
2771
2800
  };
2772
2801
  }());
2773
2802
 
2774
- if (commonJSModule) {
2803
+ sinon.mock = mock;
2804
+
2805
+ if (typeof define === "function" && define.amd) {
2806
+ define(["module"], function(module) { module.exports = mock; });
2807
+ } else if (commonJSModule) {
2775
2808
  module.exports = mock;
2776
- } else {
2777
- sinon.mock = mock;
2778
2809
  }
2779
2810
  }(typeof sinon == "object" && sinon || null));
2780
2811
 
@@ -2795,7 +2826,7 @@ var sinon = (function (formatio) {
2795
2826
  */
2796
2827
 
2797
2828
  (function (sinon) {
2798
- var commonJSModule = typeof module !== 'undefined' && module.exports;
2829
+ var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
2799
2830
  var push = [].push;
2800
2831
  var hasOwnProperty = Object.prototype.hasOwnProperty;
2801
2832
 
@@ -2924,10 +2955,12 @@ var sinon = (function (formatio) {
2924
2955
  }
2925
2956
  };
2926
2957
 
2927
- if (commonJSModule) {
2958
+ sinon.collection = collection;
2959
+
2960
+ if (typeof define === "function" && define.amd) {
2961
+ define(["module"], function(module) { module.exports = collection; });
2962
+ } else if (commonJSModule) {
2928
2963
  module.exports = collection;
2929
- } else {
2930
- sinon.collection = collection;
2931
2964
  }
2932
2965
  }(typeof sinon == "object" && sinon || null));
2933
2966
 
@@ -2956,6 +2989,13 @@ if (typeof sinon == "undefined") {
2956
2989
  }
2957
2990
 
2958
2991
  (function (global) {
2992
+ // node expects setTimeout/setInterval to return a fn object w/ .ref()/.unref()
2993
+ // browsers, a number.
2994
+ // see https://github.com/cjohansen/Sinon.JS/pull/436
2995
+ var timeoutResult = setTimeout(function() {}, 0);
2996
+ var addTimerReturnsObject = typeof timeoutResult === 'object';
2997
+ clearTimeout(timeoutResult);
2998
+
2959
2999
  var id = 1;
2960
3000
 
2961
3001
  function addTimer(args, recurring) {
@@ -2985,7 +3025,16 @@ if (typeof sinon == "undefined") {
2985
3025
  this.timeouts[toId].interval = delay;
2986
3026
  }
2987
3027
 
2988
- return toId;
3028
+ if (addTimerReturnsObject) {
3029
+ return {
3030
+ id: toId,
3031
+ ref: function() {},
3032
+ unref: function() {}
3033
+ };
3034
+ }
3035
+ else {
3036
+ return toId;
3037
+ }
2989
3038
  }
2990
3039
 
2991
3040
  function parseTime(str) {
@@ -3051,10 +3100,18 @@ if (typeof sinon == "undefined") {
3051
3100
  },
3052
3101
 
3053
3102
  clearTimeout: function clearTimeout(timerId) {
3103
+ if (!timerId) {
3104
+ // null appears to be allowed in most browsers, and appears to be relied upon by some libraries, like Bootstrap carousel
3105
+ return;
3106
+ }
3054
3107
  if (!this.timeouts) {
3055
3108
  this.timeouts = [];
3056
3109
  }
3057
-
3110
+ // in Node, timerId is an object with .ref()/.unref(), and
3111
+ // its .id field is the actual timer id.
3112
+ if (typeof timerId === 'object') {
3113
+ timerId = timerId.id
3114
+ }
3058
3115
  if (timerId in this.timeouts) {
3059
3116
  delete this.timeouts[timerId];
3060
3117
  }
@@ -3441,7 +3498,7 @@ if (typeof sinon == "undefined") {
3441
3498
  xhr.supportsXHR = typeof xhr.GlobalXMLHttpRequest != "undefined";
3442
3499
  xhr.workingXHR = xhr.supportsXHR ? xhr.GlobalXMLHttpRequest : xhr.supportsActiveX
3443
3500
  ? function() { return new xhr.GlobalActiveXObject("MSXML2.XMLHTTP.3.0") } : false;
3444
- xhr.supportsCORS = 'withCredentials' in (new sinon.xhr.GlobalXMLHttpRequest());
3501
+ xhr.supportsCORS = xhr.supportsXHR && 'withCredentials' in (new sinon.xhr.GlobalXMLHttpRequest());
3445
3502
 
3446
3503
  /*jsl:ignore*/
3447
3504
  var unsafeHeaders = {
@@ -3979,7 +4036,7 @@ if (typeof sinon == "undefined") {
3979
4036
 
3980
4037
  sinon.FakeXMLHttpRequest = FakeXMLHttpRequest;
3981
4038
 
3982
- })(typeof global === "object" ? global : this);
4039
+ })((function(){ return typeof global === "object" ? global : this; })());
3983
4040
 
3984
4041
  if (typeof module !== 'undefined' && module.exports) {
3985
4042
  module.exports = sinon;
@@ -4062,15 +4119,6 @@ sinon.fakeServer = (function () {
4062
4119
  return false;
4063
4120
  }
4064
4121
 
4065
- function log(response, request) {
4066
- var str;
4067
-
4068
- str = "Request:\n" + sinon.format(request) + "\n\n";
4069
- str += "Response:\n" + sinon.format(response) + "\n\n";
4070
-
4071
- sinon.log(str);
4072
- }
4073
-
4074
4122
  return {
4075
4123
  create: function () {
4076
4124
  var server = create(this);
@@ -4123,6 +4171,15 @@ sinon.fakeServer = (function () {
4123
4171
  }
4124
4172
  },
4125
4173
 
4174
+ log: function(response, request) {
4175
+ var str;
4176
+
4177
+ str = "Request:\n" + sinon.format(request) + "\n\n";
4178
+ str += "Response:\n" + sinon.format(response) + "\n\n";
4179
+
4180
+ sinon.log(str);
4181
+ },
4182
+
4126
4183
  respondWith: function respondWith(method, url, body) {
4127
4184
  if (arguments.length == 1 && typeof method != "function") {
4128
4185
  this.response = responseArray(method);
@@ -4152,7 +4209,7 @@ sinon.fakeServer = (function () {
4152
4209
  respond: function respond() {
4153
4210
  if (arguments.length > 0) this.respondWith.apply(this, arguments);
4154
4211
  var queue = this.queue || [];
4155
- var requests = queue.splice(0);
4212
+ var requests = queue.splice(0, queue.length);
4156
4213
  var request;
4157
4214
 
4158
4215
  while(request = requests.shift()) {
@@ -4178,7 +4235,7 @@ sinon.fakeServer = (function () {
4178
4235
  }
4179
4236
 
4180
4237
  if (request.readyState != 4) {
4181
- log(response, request);
4238
+ sinon.fakeServer.log(response, request);
4182
4239
 
4183
4240
  request.respond(response[0], response[1], response[2]);
4184
4241
  }
@@ -4298,7 +4355,7 @@ if (typeof module !== 'undefined' && module.exports) {
4298
4355
  * Copyright (c) 2010-2013 Christian Johansen
4299
4356
  */
4300
4357
 
4301
- if (typeof module !== 'undefined' && module.exports) {
4358
+ if (typeof module !== "undefined" && module.exports && typeof require == "function") {
4302
4359
  var sinon = require("../sinon");
4303
4360
  sinon.extend(sinon, require("./util/fake_timers"));
4304
4361
  }
@@ -4417,7 +4474,9 @@ if (typeof module !== 'undefined' && module.exports) {
4417
4474
 
4418
4475
  sinon.sandbox.useFakeXMLHttpRequest = sinon.sandbox.useFakeServer;
4419
4476
 
4420
- if (typeof module !== 'undefined' && module.exports) {
4477
+ if (typeof define === "function" && define.amd) {
4478
+ define(["module"], function(module) { module.exports = sinon.sandbox; });
4479
+ } else if (typeof module !== 'undefined' && module.exports) {
4421
4480
  module.exports = sinon.sandbox;
4422
4481
  }
4423
4482
  }());
@@ -4440,7 +4499,7 @@ if (typeof module !== 'undefined' && module.exports) {
4440
4499
  */
4441
4500
 
4442
4501
  (function (sinon) {
4443
- var commonJSModule = typeof module !== 'undefined' && module.exports;
4502
+ var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
4444
4503
 
4445
4504
  if (!sinon && commonJSModule) {
4446
4505
  sinon = require("../sinon");
@@ -4457,7 +4516,7 @@ if (typeof module !== 'undefined' && module.exports) {
4457
4516
  throw new TypeError("sinon.test needs to wrap a test function, got " + type);
4458
4517
  }
4459
4518
 
4460
- return function () {
4519
+ function sinonSandboxedTest() {
4461
4520
  var config = sinon.getConfig(sinon.config);
4462
4521
  config.injectInto = config.injectIntoThis && this || config.injectInto;
4463
4522
  var sandbox = sinon.sandbox.create(config);
@@ -4480,6 +4539,14 @@ if (typeof module !== 'undefined' && module.exports) {
4480
4539
 
4481
4540
  return result;
4482
4541
  };
4542
+
4543
+ if (callback.length) {
4544
+ return function sinonAsyncSandboxedTest(callback) {
4545
+ return sinonSandboxedTest.apply(this, arguments);
4546
+ };
4547
+ }
4548
+
4549
+ return sinonSandboxedTest;
4483
4550
  }
4484
4551
 
4485
4552
  test.config = {
@@ -4490,10 +4557,12 @@ if (typeof module !== 'undefined' && module.exports) {
4490
4557
  useFakeServer: true
4491
4558
  };
4492
4559
 
4493
- if (commonJSModule) {
4560
+ sinon.test = test;
4561
+
4562
+ if (typeof define === "function" && define.amd) {
4563
+ define(["module"], function(module) { module.exports = test; });
4564
+ } else if (commonJSModule) {
4494
4565
  module.exports = test;
4495
- } else {
4496
- sinon.test = test;
4497
4566
  }
4498
4567
  }(typeof sinon == "object" && sinon || null));
4499
4568
 
@@ -4513,7 +4582,7 @@ if (typeof module !== 'undefined' && module.exports) {
4513
4582
  */
4514
4583
 
4515
4584
  (function (sinon) {
4516
- var commonJSModule = typeof module !== 'undefined' && module.exports;
4585
+ var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
4517
4586
 
4518
4587
  if (!sinon && commonJSModule) {
4519
4588
  sinon = require("../sinon");
@@ -4587,10 +4656,12 @@ if (typeof module !== 'undefined' && module.exports) {
4587
4656
  return methods;
4588
4657
  }
4589
4658
 
4590
- if (commonJSModule) {
4659
+ sinon.testCase = testCase;
4660
+
4661
+ if (typeof define === "function" && define.amd) {
4662
+ define(["module"], function(module) { module.exports = testCase; });
4663
+ } else if (commonJSModule) {
4591
4664
  module.exports = testCase;
4592
- } else {
4593
- sinon.testCase = testCase;
4594
4665
  }
4595
4666
  }(typeof sinon == "object" && sinon || null));
4596
4667
 
@@ -4610,7 +4681,7 @@ if (typeof module !== 'undefined' && module.exports) {
4610
4681
  */
4611
4682
 
4612
4683
  (function (sinon, global) {
4613
- var commonJSModule = typeof module !== "undefined" && module.exports;
4684
+ var commonJSModule = typeof module !== "undefined" && module.exports && typeof require == "function";
4614
4685
  var slice = Array.prototype.slice;
4615
4686
  var assert;
4616
4687
 
@@ -4784,11 +4855,219 @@ if (typeof module !== 'undefined' && module.exports) {
4784
4855
  mirrorPropAsAssertion("threw", "%n did not throw exception%C");
4785
4856
  mirrorPropAsAssertion("alwaysThrew", "%n did not always throw exception%C");
4786
4857
 
4787
- if (commonJSModule) {
4858
+ sinon.assert = assert;
4859
+
4860
+ if (typeof define === "function" && define.amd) {
4861
+ define(["module"], function(module) { module.exports = assert; });
4862
+ } else if (commonJSModule) {
4788
4863
  module.exports = assert;
4789
- } else {
4790
- sinon.assert = assert;
4791
4864
  }
4792
4865
  }(typeof sinon == "object" && sinon || null, typeof window != "undefined" ? window : (typeof self != "undefined") ? self : global));
4793
4866
 
4867
+ /**
4868
+ * @depend ../../sinon.js
4869
+ * @depend event.js
4870
+ */
4871
+ /*jslint eqeqeq: false, onevar: false*/
4872
+ /*global sinon, module, require, XDomainRequest*/
4873
+ /**
4874
+ * Fake XDomainRequest object
4875
+ */
4876
+
4877
+ if (typeof sinon == "undefined") {
4878
+ this.sinon = {};
4879
+ }
4880
+ sinon.xdr = { XDomainRequest: this.XDomainRequest };
4881
+
4882
+ // wrapper for global
4883
+ (function (global) {
4884
+ var xdr = sinon.xdr;
4885
+ xdr.GlobalXDomainRequest = global.XDomainRequest;
4886
+ xdr.supportsXDR = typeof xdr.GlobalXDomainRequest != "undefined";
4887
+ xdr.workingXDR = xdr.supportsXDR ? xdr.GlobalXDomainRequest : false;
4888
+
4889
+ function FakeXDomainRequest() {
4890
+ this.readyState = FakeXDomainRequest.UNSENT;
4891
+ this.requestBody = null;
4892
+ this.requestHeaders = {};
4893
+ this.status = 0;
4894
+ this.timeout = null;
4895
+
4896
+ if (typeof FakeXDomainRequest.onCreate == "function") {
4897
+ FakeXDomainRequest.onCreate(this);
4898
+ }
4899
+ }
4900
+
4901
+ function verifyState(xdr) {
4902
+ if (xdr.readyState !== FakeXDomainRequest.OPENED) {
4903
+ throw new Error("INVALID_STATE_ERR");
4904
+ }
4905
+
4906
+ if (xdr.sendFlag) {
4907
+ throw new Error("INVALID_STATE_ERR");
4908
+ }
4909
+ }
4910
+
4911
+ function verifyRequestSent(xdr) {
4912
+ if (xdr.readyState == FakeXDomainRequest.UNSENT) {
4913
+ throw new Error("Request not sent");
4914
+ }
4915
+ if (xdr.readyState == FakeXDomainRequest.DONE) {
4916
+ throw new Error("Request done");
4917
+ }
4918
+ }
4919
+
4920
+ function verifyResponseBodyType(body) {
4921
+ if (typeof body != "string") {
4922
+ var error = new Error("Attempted to respond to fake XDomainRequest with " +
4923
+ body + ", which is not a string.");
4924
+ error.name = "InvalidBodyException";
4925
+ throw error;
4926
+ }
4927
+ }
4928
+
4929
+ sinon.extend(FakeXDomainRequest.prototype, sinon.EventTarget, {
4930
+ open: function open(method, url) {
4931
+ this.method = method;
4932
+ this.url = url;
4933
+
4934
+ this.responseText = null;
4935
+ this.sendFlag = false;
4936
+
4937
+ this.readyStateChange(FakeXDomainRequest.OPENED);
4938
+ },
4939
+
4940
+ readyStateChange: function readyStateChange(state) {
4941
+ this.readyState = state;
4942
+ var eventName = '';
4943
+ switch (this.readyState) {
4944
+ case FakeXDomainRequest.UNSENT:
4945
+ break;
4946
+ case FakeXDomainRequest.OPENED:
4947
+ break;
4948
+ case FakeXDomainRequest.LOADING:
4949
+ if (this.sendFlag){
4950
+ //raise the progress event
4951
+ eventName = 'onprogress';
4952
+ }
4953
+ break;
4954
+ case FakeXDomainRequest.DONE:
4955
+ if (this.isTimeout){
4956
+ eventName = 'ontimeout'
4957
+ }
4958
+ else if (this.errorFlag || (this.status < 200 || this.status > 299)) {
4959
+ eventName = 'onerror';
4960
+ }
4961
+ else {
4962
+ eventName = 'onload'
4963
+ }
4964
+ break;
4965
+ }
4966
+
4967
+ // raising event (if defined)
4968
+ if (eventName) {
4969
+ if (typeof this[eventName] == "function") {
4970
+ try {
4971
+ this[eventName]();
4972
+ } catch (e) {
4973
+ sinon.logError("Fake XHR " + eventName + " handler", e);
4974
+ }
4975
+ }
4976
+ }
4977
+ },
4978
+
4979
+ send: function send(data) {
4980
+ verifyState(this);
4981
+
4982
+ if (!/^(get|head)$/i.test(this.method)) {
4983
+ this.requestBody = data;
4984
+ }
4985
+ this.requestHeaders["Content-Type"] = "text/plain;charset=utf-8";
4986
+
4987
+ this.errorFlag = false;
4988
+ this.sendFlag = true;
4989
+ this.readyStateChange(FakeXDomainRequest.OPENED);
4990
+
4991
+ if (typeof this.onSend == "function") {
4992
+ this.onSend(this);
4993
+ }
4994
+ },
4995
+
4996
+ abort: function abort() {
4997
+ this.aborted = true;
4998
+ this.responseText = null;
4999
+ this.errorFlag = true;
5000
+
5001
+ if (this.readyState > sinon.FakeXDomainRequest.UNSENT && this.sendFlag) {
5002
+ this.readyStateChange(sinon.FakeXDomainRequest.DONE);
5003
+ this.sendFlag = false;
5004
+ }
5005
+ },
5006
+
5007
+ setResponseBody: function setResponseBody(body) {
5008
+ verifyRequestSent(this);
5009
+ verifyResponseBodyType(body);
5010
+
5011
+ var chunkSize = this.chunkSize || 10;
5012
+ var index = 0;
5013
+ this.responseText = "";
5014
+
5015
+ do {
5016
+ this.readyStateChange(FakeXDomainRequest.LOADING);
5017
+ this.responseText += body.substring(index, index + chunkSize);
5018
+ index += chunkSize;
5019
+ } while (index < body.length);
5020
+
5021
+ this.readyStateChange(FakeXDomainRequest.DONE);
5022
+ },
5023
+
5024
+ respond: function respond(status, contentType, body) {
5025
+ // content-type ignored, since XDomainRequest does not carry this
5026
+ // we keep the same syntax for respond(...) as for FakeXMLHttpRequest to ease
5027
+ // test integration across browsers
5028
+ this.status = typeof status == "number" ? status : 200;
5029
+ this.setResponseBody(body || "");
5030
+ },
5031
+
5032
+ simulatetimeout: function(){
5033
+ this.status = 0;
5034
+ this.isTimeout = true;
5035
+ // Access to this should actually throw an error
5036
+ this.responseText = undefined;
5037
+ this.readyStateChange(FakeXDomainRequest.DONE);
5038
+ }
5039
+ });
5040
+
5041
+ sinon.extend(FakeXDomainRequest, {
5042
+ UNSENT: 0,
5043
+ OPENED: 1,
5044
+ LOADING: 3,
5045
+ DONE: 4
5046
+ });
5047
+
5048
+ sinon.useFakeXDomainRequest = function () {
5049
+ sinon.FakeXDomainRequest.restore = function restore(keepOnCreate) {
5050
+ if (xdr.supportsXDR) {
5051
+ global.XDomainRequest = xdr.GlobalXDomainRequest;
5052
+ }
5053
+
5054
+ delete sinon.FakeXDomainRequest.restore;
5055
+
5056
+ if (keepOnCreate !== true) {
5057
+ delete sinon.FakeXDomainRequest.onCreate;
5058
+ }
5059
+ };
5060
+ if (xdr.supportsXDR) {
5061
+ global.XDomainRequest = sinon.FakeXDomainRequest;
5062
+ }
5063
+ return sinon.FakeXDomainRequest;
5064
+ };
5065
+
5066
+ sinon.FakeXDomainRequest = FakeXDomainRequest;
5067
+ })(this);
5068
+
5069
+ if (typeof module == "object" && typeof require == "function") {
5070
+ module.exports = sinon;
5071
+ }
5072
+
4794
5073
  return sinon;}.call(typeof window != 'undefined' && window || {}));
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinon-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 1.10.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Travis Jeffery
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-17 00:00:00.000000000 Z
11
+ date: 2014-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.1'
27
27
  description:
@@ -31,7 +31,7 @@ executables: []
31
31
  extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
- - .gitignore
34
+ - ".gitignore"
35
35
  - Gemfile
36
36
  - LICENSE
37
37
  - README.md
@@ -50,17 +50,17 @@ require_paths:
50
50
  - lib
51
51
  required_ruby_version: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  required_rubygems_version: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - '>='
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  requirements: []
62
62
  rubyforge_project:
63
- rubygems_version: 2.0.3
63
+ rubygems_version: 2.2.2
64
64
  signing_key:
65
65
  specification_version: 4
66
66
  summary: sinon.js via asset pipeline