unpoly-rails 0.32.0 → 0.33.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of unpoly-rails might be problematic. Click here for more details.

Files changed (232) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +106 -76
  3. data/README.md +8 -5
  4. data/README_RAILS.md +1 -1
  5. data/design/test_rejected_promise.txt +5 -0
  6. data/dist/unpoly-bootstrap3.js +1 -1
  7. data/dist/unpoly-bootstrap3.min.js +1 -1
  8. data/dist/unpoly.js +814 -417
  9. data/dist/unpoly.min.js +3 -3
  10. data/lib/assets/javascripts/unpoly/{browser.js.coffee → browser.coffee} +15 -6
  11. data/lib/assets/javascripts/unpoly/{bus.js.coffee → bus.coffee} +13 -13
  12. data/lib/assets/javascripts/unpoly/dom/extract_cascade.coffee +73 -0
  13. data/lib/assets/javascripts/unpoly/dom/extract_plan.coffee +65 -0
  14. data/lib/assets/javascripts/unpoly/{flow.js.coffee → dom.coffee} +109 -114
  15. data/lib/assets/javascripts/unpoly/{navigation.js.coffee → feedback.coffee} +11 -11
  16. data/lib/assets/javascripts/unpoly/{form.js.coffee → form.coffee} +35 -24
  17. data/lib/assets/javascripts/unpoly/{history.js.coffee → history.coffee} +9 -10
  18. data/lib/assets/javascripts/unpoly/{layout.js.coffee → layout.coffee} +53 -21
  19. data/lib/assets/javascripts/unpoly/{link.js.coffee → link.coffee} +46 -40
  20. data/lib/assets/javascripts/unpoly/{log.js.coffee → log.coffee} +2 -2
  21. data/lib/assets/javascripts/unpoly/{modal.js.coffee → modal.coffee} +17 -14
  22. data/lib/assets/javascripts/unpoly/{motion.js.coffee → motion.coffee} +28 -31
  23. data/lib/assets/javascripts/unpoly/namespace.coffee.erb +10 -0
  24. data/lib/assets/javascripts/unpoly/{popup.js.coffee → popup.coffee} +22 -10
  25. data/lib/assets/javascripts/unpoly/{proxy.js.coffee → proxy.coffee} +34 -12
  26. data/lib/assets/javascripts/unpoly/{rails.js.coffee → rails.coffee} +0 -0
  27. data/lib/assets/javascripts/unpoly/{syntax.js.coffee → syntax.coffee} +32 -21
  28. data/lib/assets/javascripts/unpoly/{toast.js.coffee → toast.coffee} +0 -0
  29. data/lib/assets/javascripts/unpoly/{tooltip.js.coffee → tooltip.coffee} +2 -2
  30. data/lib/assets/javascripts/unpoly/{util.js.coffee → util.coffee} +122 -35
  31. data/lib/assets/javascripts/unpoly-bootstrap3/{form-ext.js.coffee → form-ext.coffee} +0 -0
  32. data/lib/assets/javascripts/unpoly-bootstrap3/{layout-ext.js.coffee → layout-ext.coffee} +0 -0
  33. data/lib/assets/javascripts/unpoly-bootstrap3/{modal-ext.js.coffee → modal-ext.coffee} +0 -0
  34. data/lib/assets/javascripts/unpoly-bootstrap3/{navigation-ext.js.coffee → navigation-ext.coffee} +1 -1
  35. data/lib/assets/javascripts/{unpoly-bootstrap3.js.coffee → unpoly-bootstrap3.coffee} +0 -0
  36. data/lib/assets/javascripts/unpoly.coffee +22 -0
  37. data/lib/assets/stylesheets/unpoly/{close.css.sass → close.sass} +0 -0
  38. data/lib/assets/stylesheets/unpoly/{flow.css.sass → flow.sass} +0 -0
  39. data/lib/assets/stylesheets/unpoly/{link.css.sass → link.sass} +0 -0
  40. data/lib/assets/stylesheets/unpoly/{modal.css.sass → modal.sass} +0 -0
  41. data/lib/assets/stylesheets/unpoly/{popup.css.sass → popup.sass} +0 -0
  42. data/lib/assets/stylesheets/unpoly/{toast.css.sass → toast.sass} +0 -0
  43. data/lib/assets/stylesheets/unpoly/{tooltip.css.sass → tooltip.sass} +0 -0
  44. data/lib/assets/stylesheets/unpoly-bootstrap3/{modal-ext.css.sass → modal-ext.sass} +0 -0
  45. data/lib/assets/stylesheets/{unpoly-bootstrap3.css.sass → unpoly-bootstrap3.sass} +0 -0
  46. data/lib/assets/stylesheets/{unpoly.css.sass → unpoly.sass} +0 -0
  47. data/lib/unpoly/rails/version.rb +1 -1
  48. data/package.json +1 -1
  49. data/spec_app/Gemfile.lock +11 -13
  50. data/spec_app/app/assets/javascripts/jasmine_specs.coffee +1 -1
  51. data/spec_app/app/assets/stylesheets/_helpers.sass +1 -1
  52. data/spec_app/config/initializers/assets.rb +1 -5
  53. data/spec_app/spec/javascripts/up/{flow_spec.js.coffee → dom_spec.js.coffee} +294 -44
  54. data/spec_app/spec/javascripts/up/{navigation_spec.js.coffee → feedback_spec.js.coffee} +2 -2
  55. data/spec_app/spec/javascripts/up/form_spec.js.coffee +1 -0
  56. data/spec_app/spec/javascripts/up/layout_spec.js.coffee +10 -0
  57. data/spec_app/spec/javascripts/up/link_spec.js.coffee +28 -0
  58. data/spec_app/spec/javascripts/up/modal_spec.js.coffee +46 -9
  59. data/spec_app/spec/javascripts/up/motion_spec.js.coffee +32 -2
  60. data/spec_app/spec/javascripts/up/popup_spec.js.coffee +5 -4
  61. data/spec_app/spec/javascripts/up/util_spec.js.coffee +75 -0
  62. data/spec_app/vendor/{assets/bower_components/jasmine-ajax → asset-libs/jasmine-ajax-3.3.1}/.bower.json +0 -0
  63. data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.gitignore +6 -0
  64. data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.npmignore +10 -0
  65. data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.pairs +6 -0
  66. data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.travis.yml +56 -0
  67. data/spec_app/vendor/{assets/bower_components/jasmine-ajax/lib/mock-ajax.js → asset-libs/jasmine-ajax-3.3.1/jasmine-ajax.js} +83 -26
  68. data/spec_app/vendor/{assets/bower_components/jasmine-fixture/dist → asset-libs/jasmine-fixture-1.3.4}/jasmine-fixture.js +13 -13
  69. data/spec_app/vendor/{assets/bower_components/jasmine-jquery → asset-libs/jasmine-jquery-2.1.1}/.bower.json +0 -0
  70. data/spec_app/vendor/{assets/bower_components/jasmine-jquery/lib → asset-libs/jasmine-jquery-2.1.1}/jasmine-jquery.js +0 -0
  71. data/spec_app/vendor/assets/{javascripts/.keep → .keep} +0 -0
  72. metadata +52 -203
  73. data/lib/assets/javascripts/unpoly/module.js.coffee.erb +0 -8
  74. data/lib/assets/javascripts/unpoly.js.coffee +0 -21
  75. data/spec_app/Bowerfile +0 -3
  76. data/spec_app/vendor/assets/.bowerrc +0 -3
  77. data/spec_app/vendor/assets/bower.json +0 -8
  78. data/spec_app/vendor/assets/bower_components/jasmine/.bower.json +0 -50
  79. data/spec_app/vendor/assets/bower_components/jasmine/CONTRIBUTING.md +0 -130
  80. data/spec_app/vendor/assets/bower_components/jasmine/GOALS_2.0.md +0 -64
  81. data/spec_app/vendor/assets/bower_components/jasmine/MANIFEST.in +0 -5
  82. data/spec_app/vendor/assets/bower_components/jasmine/MIT.LICENSE +0 -20
  83. data/spec_app/vendor/assets/bower_components/jasmine/README.md +0 -73
  84. data/spec_app/vendor/assets/bower_components/jasmine/RELEASE.md +0 -73
  85. data/spec_app/vendor/assets/bower_components/jasmine/bower.json +0 -41
  86. data/spec_app/vendor/assets/bower_components/jasmine/images/jasmine-horizontal.png +0 -0
  87. data/spec_app/vendor/assets/bower_components/jasmine/images/jasmine-horizontal.svg +0 -102
  88. data/spec_app/vendor/assets/bower_components/jasmine/images/jasmine_favicon.png +0 -0
  89. data/spec_app/vendor/assets/bower_components/jasmine/lib/console/console.js +0 -190
  90. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/boot.js +0 -143
  91. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/lib/jasmine_examples/Player.js +0 -24
  92. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/lib/jasmine_examples/Song.js +0 -9
  93. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine-html.js +0 -446
  94. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine.css +0 -58
  95. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine.js +0 -3298
  96. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/json2.js +0 -489
  97. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/node_boot.js +0 -41
  98. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core.js +0 -37
  99. data/spec_app/vendor/assets/bower_components/jasmine/package.json +0 -34
  100. data/spec_app/vendor/assets/bower_components/jasmine/requirements.txt +0 -1
  101. data/spec_app/vendor/assets/bower_components/jasmine-ajax/MIT.LICENSE +0 -20
  102. data/spec_app/vendor/assets/bower_components/jasmine-ajax/README.markdown +0 -289
  103. data/spec_app/vendor/assets/bower_components/jasmine-ajax/bower.json +0 -35
  104. data/spec_app/vendor/assets/bower_components/jasmine-ajax/package.json +0 -26
  105. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/2.0.2.md +0 -50
  106. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/2.99.md +0 -14
  107. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.0.md +0 -28
  108. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.1.0.md +0 -24
  109. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.1.1.md +0 -23
  110. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.2.0.md +0 -20
  111. data/spec_app/vendor/assets/bower_components/jasmine-fixture/.bower.json +0 -27
  112. data/spec_app/vendor/assets/bower_components/jasmine-fixture/.gitignore +0 -8
  113. data/spec_app/vendor/assets/bower_components/jasmine-fixture/.npmignore +0 -8
  114. data/spec_app/vendor/assets/bower_components/jasmine-fixture/LICENSE.txt +0 -24
  115. data/spec_app/vendor/assets/bower_components/jasmine-fixture/README.md +0 -118
  116. data/spec_app/vendor/assets/bower_components/jasmine-fixture/bower.json +0 -17
  117. data/spec_app/vendor/assets/bower_components/jasmine-fixture/dist/jasmine-fixture.min.js +0 -5
  118. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/basic-usage-spec.coffee +0 -14
  119. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/helpers/invariants.coffee +0 -17
  120. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/helpers/spec-within-a-spec.coffee +0 -24
  121. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/helpers/tmp-files.coffee +0 -8
  122. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/support/jasmine1-testem-config.json +0 -11
  123. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/support/jasmine2-testem-config.json +0 -11
  124. data/spec_app/vendor/assets/bower_components/jasmine-fixture/vendor/js/jquery-1.11.0.js +0 -10337
  125. data/spec_app/vendor/assets/bower_components/jasmine-fixture/vendor/js/jquery-1.8.3.js +0 -9472
  126. data/spec_app/vendor/assets/bower_components/jasmine-fixture/vendor/js/jquery-2.1.0.js +0 -9111
  127. data/spec_app/vendor/assets/bower_components/jasmine-jquery/CONTRIBUTING.md +0 -28
  128. data/spec_app/vendor/assets/bower_components/jasmine-jquery/Gruntfile.js +0 -49
  129. data/spec_app/vendor/assets/bower_components/jasmine-jquery/LICENSE +0 -20
  130. data/spec_app/vendor/assets/bower_components/jasmine-jquery/README.md +0 -367
  131. data/spec_app/vendor/assets/bower_components/jasmine-jquery/bower.json +0 -15
  132. data/spec_app/vendor/assets/bower_components/jasmine-jquery/package.json +0 -35
  133. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/fixture_with_checkbox_with_checked.html +0 -6
  134. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/fixture_with_javascript.html +0 -1
  135. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/fixture_with_javascript_block.html +0 -1
  136. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/javascripts/jasmine_javascript_click.js +0 -1
  137. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/javascripts/jasmine_javascript_hover.js +0 -1
  138. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/json/jasmine_json_test.json +0 -1
  139. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/real_non_mocked_fixture.html +0 -1
  140. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/real_non_mocked_fixture_style.css +0 -1
  141. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/suites/jasmine-jquery-spec.js +0 -1842
  142. data/spec_app/vendor/assets/bower_components/jquery/.bower.json +0 -38
  143. data/spec_app/vendor/assets/bower_components/jquery/MIT-LICENSE.txt +0 -21
  144. data/spec_app/vendor/assets/bower_components/jquery/bower.json +0 -28
  145. data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.js +0 -9210
  146. data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.min.js +0 -5
  147. data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.min.map +0 -1
  148. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +0 -89
  149. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/load.js +0 -75
  150. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +0 -13
  151. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +0 -28
  152. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/script.js +0 -64
  153. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +0 -5
  154. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +0 -3
  155. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/xhr.js +0 -136
  156. data/spec_app/vendor/assets/bower_components/jquery/src/ajax.js +0 -786
  157. data/spec_app/vendor/assets/bower_components/jquery/src/attributes/attr.js +0 -141
  158. data/spec_app/vendor/assets/bower_components/jquery/src/attributes/classes.js +0 -158
  159. data/spec_app/vendor/assets/bower_components/jquery/src/attributes/prop.js +0 -94
  160. data/spec_app/vendor/assets/bower_components/jquery/src/attributes/support.js +0 -35
  161. data/spec_app/vendor/assets/bower_components/jquery/src/attributes/val.js +0 -161
  162. data/spec_app/vendor/assets/bower_components/jquery/src/attributes.js +0 -11
  163. data/spec_app/vendor/assets/bower_components/jquery/src/callbacks.js +0 -205
  164. data/spec_app/vendor/assets/bower_components/jquery/src/core/access.js +0 -60
  165. data/spec_app/vendor/assets/bower_components/jquery/src/core/init.js +0 -123
  166. data/spec_app/vendor/assets/bower_components/jquery/src/core/parseHTML.js +0 -39
  167. data/spec_app/vendor/assets/bower_components/jquery/src/core/ready.js +0 -97
  168. data/spec_app/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +0 -4
  169. data/spec_app/vendor/assets/bower_components/jquery/src/core.js +0 -502
  170. data/spec_app/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +0 -22
  171. data/spec_app/vendor/assets/bower_components/jquery/src/css/curCSS.js +0 -57
  172. data/spec_app/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +0 -70
  173. data/spec_app/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +0 -15
  174. data/spec_app/vendor/assets/bower_components/jquery/src/css/support.js +0 -96
  175. data/spec_app/vendor/assets/bower_components/jquery/src/css/swap.js +0 -28
  176. data/spec_app/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +0 -3
  177. data/spec_app/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +0 -12
  178. data/spec_app/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +0 -13
  179. data/spec_app/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +0 -3
  180. data/spec_app/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +0 -5
  181. data/spec_app/vendor/assets/bower_components/jquery/src/css.js +0 -450
  182. data/spec_app/vendor/assets/bower_components/jquery/src/data/Data.js +0 -181
  183. data/spec_app/vendor/assets/bower_components/jquery/src/data/accepts.js +0 -20
  184. data/spec_app/vendor/assets/bower_components/jquery/src/data/var/data_priv.js +0 -5
  185. data/spec_app/vendor/assets/bower_components/jquery/src/data/var/data_user.js +0 -5
  186. data/spec_app/vendor/assets/bower_components/jquery/src/data.js +0 -178
  187. data/spec_app/vendor/assets/bower_components/jquery/src/deferred.js +0 -149
  188. data/spec_app/vendor/assets/bower_components/jquery/src/deprecated.js +0 -13
  189. data/spec_app/vendor/assets/bower_components/jquery/src/dimensions.js +0 -50
  190. data/spec_app/vendor/assets/bower_components/jquery/src/effects/Tween.js +0 -114
  191. data/spec_app/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +0 -13
  192. data/spec_app/vendor/assets/bower_components/jquery/src/effects.js +0 -648
  193. data/spec_app/vendor/assets/bower_components/jquery/src/event/ajax.js +0 -13
  194. data/spec_app/vendor/assets/bower_components/jquery/src/event/alias.js +0 -39
  195. data/spec_app/vendor/assets/bower_components/jquery/src/event/support.js +0 -9
  196. data/spec_app/vendor/assets/bower_components/jquery/src/event.js +0 -868
  197. data/spec_app/vendor/assets/bower_components/jquery/src/exports/amd.js +0 -24
  198. data/spec_app/vendor/assets/bower_components/jquery/src/exports/global.js +0 -32
  199. data/spec_app/vendor/assets/bower_components/jquery/src/intro.js +0 -44
  200. data/spec_app/vendor/assets/bower_components/jquery/src/jquery.js +0 -37
  201. data/spec_app/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +0 -18
  202. data/spec_app/vendor/assets/bower_components/jquery/src/manipulation/support.js +0 -32
  203. data/spec_app/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +0 -3
  204. data/spec_app/vendor/assets/bower_components/jquery/src/manipulation.js +0 -580
  205. data/spec_app/vendor/assets/bower_components/jquery/src/offset.js +0 -207
  206. data/spec_app/vendor/assets/bower_components/jquery/src/outro.js +0 -1
  207. data/spec_app/vendor/assets/bower_components/jquery/src/queue/delay.js +0 -22
  208. data/spec_app/vendor/assets/bower_components/jquery/src/queue.js +0 -142
  209. data/spec_app/vendor/assets/bower_components/jquery/src/selector-native.js +0 -172
  210. data/spec_app/vendor/assets/bower_components/jquery/src/selector-sizzle.js +0 -14
  211. data/spec_app/vendor/assets/bower_components/jquery/src/selector.js +0 -1
  212. data/spec_app/vendor/assets/bower_components/jquery/src/serialize.js +0 -111
  213. data/spec_app/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.js +0 -2067
  214. data/spec_app/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.js +0 -3
  215. data/spec_app/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.map +0 -1
  216. data/spec_app/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +0 -100
  217. data/spec_app/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +0 -6
  218. data/spec_app/vendor/assets/bower_components/jquery/src/traversing.js +0 -199
  219. data/spec_app/vendor/assets/bower_components/jquery/src/var/arr.js +0 -3
  220. data/spec_app/vendor/assets/bower_components/jquery/src/var/class2type.js +0 -4
  221. data/spec_app/vendor/assets/bower_components/jquery/src/var/concat.js +0 -5
  222. data/spec_app/vendor/assets/bower_components/jquery/src/var/hasOwn.js +0 -5
  223. data/spec_app/vendor/assets/bower_components/jquery/src/var/indexOf.js +0 -5
  224. data/spec_app/vendor/assets/bower_components/jquery/src/var/pnum.js +0 -3
  225. data/spec_app/vendor/assets/bower_components/jquery/src/var/push.js +0 -5
  226. data/spec_app/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +0 -3
  227. data/spec_app/vendor/assets/bower_components/jquery/src/var/slice.js +0 -5
  228. data/spec_app/vendor/assets/bower_components/jquery/src/var/strundefined.js +0 -3
  229. data/spec_app/vendor/assets/bower_components/jquery/src/var/support.js +0 -4
  230. data/spec_app/vendor/assets/bower_components/jquery/src/var/toString.js +0 -5
  231. data/spec_app/vendor/assets/bower_components/jquery/src/wrap.js +0 -79
  232. data/spec_app/vendor/assets/stylesheets/.keep +0 -0
@@ -44,10 +44,28 @@ describe 'up.motion', ->
44
44
  beforeEach ->
45
45
  up.motion.config.enabled = false
46
46
 
47
- it "doesn't animate and directly sets the last frame instead", ->
47
+ it "doesn't animate and directly sets the last frame instead", (done) ->
48
48
  $element = affix('.element').text('content')
49
- up.animate($element, { 'font-size': '40px' }, duration: 10000, easing: 'linear')
49
+ callback = jasmine.createSpy('animation done callback')
50
+ animateDone = up.animate($element, { 'font-size': '40px' }, duration: 10000, easing: 'linear')
51
+ animateDone.then(callback)
50
52
  expect($element.css('font-size')).toEqual('40px')
53
+ u.nextFrame ->
54
+ expect(callback).toHaveBeenCalled()
55
+ done()
56
+
57
+ [false, null, undefined, 'none', up.motion.none()].forEach (noneAnimation) ->
58
+
59
+ describe "when called with a `#{noneAnimation}` animation", ->
60
+
61
+ it "doesn't animate and resolves instantly", (done) ->
62
+ $element = affix('.element').text('content')
63
+ callback = jasmine.createSpy('animation done callback')
64
+ animateDone = up.animate($element, noneAnimation, duration: 10000, easing: 'linear')
65
+ animateDone.then(callback)
66
+ u.nextFrame ->
67
+ expect(callback).toHaveBeenCalled()
68
+ done()
51
69
 
52
70
  describeFallback 'canCssTransition', ->
53
71
 
@@ -344,6 +362,18 @@ describe 'up.motion', ->
344
362
  expect($new).toBeVisible()
345
363
  expect($new.css('opacity')).toEqual('1')
346
364
 
365
+ [false, null, undefined, 'none', up.motion.none()].forEach (noneTransition) ->
366
+
367
+ describe "when called with a `#{noneTransition}` transition", ->
368
+
369
+ it "doesn't animate and hides the old element instead", ->
370
+ $old = affix('.old').text('old content')
371
+ $new = affix('.new').text('new content')
372
+ up.morph($old, $new, noneTransition, duration: 1000)
373
+ expect($old).toBeHidden()
374
+ expect($new).toBeVisible()
375
+ expect($new.css('opacity')).toEqual('1')
376
+
347
377
  describe 'up.transition', ->
348
378
 
349
379
  it 'should have tests'
@@ -92,7 +92,7 @@ describe 'up.popup', ->
92
92
  up.popup.config.openAnimation = 'fade-in'
93
93
  up.popup.config.openDuration = 5
94
94
  up.popup.config.closeAnimation = 'fade-out'
95
- up.popup.config.closeDuration = 50
95
+ up.popup.config.closeDuration = 60
96
96
 
97
97
  events = []
98
98
  u.each ['up:popup:open', 'up:popup:opened', 'up:popup:close', 'up:popup:closed'], (event) ->
@@ -104,20 +104,21 @@ describe 'up.popup', ->
104
104
  expect(events).toEqual ['up:popup:open']
105
105
  expect($('.target')).toHaveText('response1')
106
106
 
107
- u.setTimer 30, ->
107
+ u.setTimer 80, ->
108
108
  # First popup has completed opening animation
109
109
  expect(events).toEqual ['up:popup:open', 'up:popup:opened']
110
110
  expect($('.target')).toHaveText('response1')
111
111
 
112
+ # We open another popup, which will cause the first modal to start closing
112
113
  up.popup.attach($span, { target: '.target', html: '<div class="target">response2</div>' })
113
114
 
114
- u.setTimer 15, ->
115
+ u.setTimer 20, ->
115
116
 
116
117
  # Second popup is still waiting for first popup's closing animation to finish.
117
118
  expect(events).toEqual ['up:popup:open', 'up:popup:opened', 'up:popup:close']
118
119
  expect($('.target')).toHaveText('response1')
119
120
 
120
- u.setTimer 100, ->
121
+ u.setTimer 200, ->
121
122
 
122
123
  # First popup has finished closing, second popup has finished opening.
123
124
  expect(events).toEqual ['up:popup:open', 'up:popup:opened', 'up:popup:close', 'up:popup:closed', 'up:popup:open', 'up:popup:opened']
@@ -674,3 +674,78 @@ describe 'up.util', ->
674
674
  { name: 'my=key', value: 'my=value' },
675
675
  ])
676
676
 
677
+ describe 'up.util.flatten', ->
678
+
679
+ it 'flattens the given array', ->
680
+ array = [1, [2, 3], 4]
681
+ expect(u.flatten(array)).toEqual([1, 2, 3, 4])
682
+
683
+ it 'only flattens one level deep for performance reasons', ->
684
+ array = [1, [2, [3,4]], 5]
685
+ expect(u.flatten(array)).toEqual([1, 2, [3, 4], 5])
686
+
687
+ describe 'up.util.memoize', ->
688
+
689
+ it 'returns a function that calls the memoized function', ->
690
+ fun = (a, b) -> a + b
691
+ memoized = u.memoize(fun)
692
+ expect(memoized(2, 3)).toEqual(5)
693
+
694
+ it 'returns the cached return value of the first call when called again', ->
695
+ spy = jasmine.createSpy().and.returnValue(5)
696
+ memoized = u.memoize(spy)
697
+ expect(memoized(2, 3)).toEqual(5)
698
+ expect(memoized(2, 3)).toEqual(5)
699
+ expect(spy.calls.count()).toEqual(1)
700
+
701
+ ['assign', 'assignPolyfill'].forEach (assignVariant) ->
702
+
703
+ describe "up.util.#{assignVariant}", ->
704
+
705
+ assign = up.util[assignVariant]
706
+
707
+ it 'copies the second object into the first object', ->
708
+ target = { a: 1 }
709
+ source = { b: 2, c: 3 }
710
+
711
+ assign(target, source)
712
+
713
+ expect(target).toEqual { a: 1, b: 2, c: 3 }
714
+
715
+ # Source is unchanged
716
+ expect(source).toEqual { b: 2, c: 3 }
717
+
718
+ it 'copies null property values', ->
719
+ target = { a: 1, b: 2 }
720
+ source = { b: null }
721
+
722
+ assign(target, source)
723
+
724
+ expect(target).toEqual { a: 1, b: null }
725
+
726
+ it 'copies undefined property values', ->
727
+ target = { a: 1, b: 2 }
728
+ source = { b: undefined }
729
+
730
+ assign(target, source)
731
+
732
+ expect(target).toEqual { a: 1, b: undefined }
733
+
734
+ it 'returns the first object', ->
735
+ target = { a: 1 }
736
+ source = { b: 2 }
737
+
738
+ result = assign(target, source)
739
+
740
+ expect(result).toBe(target)
741
+
742
+ it 'takes multiple sources to copy from', ->
743
+ target = { a: 1 }
744
+ source1 = { b: 2, c: 3 }
745
+ source2 = { d: 4, e: 5 }
746
+
747
+ assign(target, source1, source2)
748
+
749
+ expect(target).toEqual { a: 1, b: 2, c: 3, d: 4, e: 5 }
750
+
751
+
@@ -0,0 +1,6 @@
1
+ .idea/
2
+ .tmp/
3
+ .rvmrc
4
+ *.swp
5
+ bower_components
6
+ node_modules
@@ -0,0 +1,10 @@
1
+ **/.*
2
+ Gemfile
3
+ Gemfile.lock
4
+ Gruntfile.js
5
+ Rakefile
6
+ bower_components
7
+ node_modules
8
+ spec
9
+ src
10
+ travis-script.sh
@@ -0,0 +1,6 @@
1
+ pairs:
2
+ hg: Hunter Gillane
3
+
4
+ email:
5
+ prefix: pair
6
+ domain: pivotallabs.com
@@ -0,0 +1,56 @@
1
+ script: bash travis-script.sh
2
+ language: ruby
3
+ cache: bundler
4
+ rvm: 1.9.3
5
+ before_install: npm install
6
+ addons:
7
+ sauce_connect: true
8
+ env:
9
+ global:
10
+ - USE_SAUCE=true
11
+ - JASMINE_BROWSER="firefox"
12
+ - SAUCE_OS="Linux"
13
+ - SAUCE_BROWSER_VERSION=''
14
+ - secure: PmIDShYXuBaZHlEz0nvcAUinsGUgP6MFlWVS33X9FO3pU1fDLqtV7Zsda25joQDJEmCf9hbfGAsmOHpZdHb54cZnxWjB5Heo/4fr4JcI/0C5wphS6SQTWlBOrLnLN68iYH5Uc+QS7ogFm6+OeiQZbYxl0u0Q2Llu5TwLYDbQHzU=
15
+ - secure: Y6Rlr+C2G4/3S0R54LdJx7DYBjZoiOJkg+uD3o6dVsUNnK5cKnJqqMm837nFOEYlbyecNtmwkFfrt28EQ52XJAkjE0RFbcC0u4OpPi7AA8P+IiHEaqpEOg14pH/XkeqcDQrQDzuoP8y2Ijm9GnDFaIW/BALUGLsFo9GnATww8kI=
16
+ matrix:
17
+ include:
18
+ - env:
19
+ - JASMINE_BROWSER="safari"
20
+ - SAUCE_OS="OS X 10.11"
21
+ - SAUCE_BROWSER_VERSION=9
22
+ - env:
23
+ - JASMINE_BROWSER="safari"
24
+ - SAUCE_OS="OS X 10.10"
25
+ - SAUCE_BROWSER_VERSION=8
26
+ - env:
27
+ - JASMINE_BROWSER="safari"
28
+ - SAUCE_OS="OS X 10.9"
29
+ - SAUCE_BROWSER_VERSION=7
30
+ - env:
31
+ - JASMINE_BROWSER="safari"
32
+ - SAUCE_OS="OS X 10.8"
33
+ - SAUCE_BROWSER_VERSION=6
34
+ - env:
35
+ - JASMINE_BROWSER="internet explorer"
36
+ - SAUCE_OS="Windows 8.1"
37
+ - SAUCE_BROWSER_VERSION=11
38
+ - env:
39
+ - JASMINE_BROWSER="internet explorer"
40
+ - SAUCE_OS="Windows 8"
41
+ - SAUCE_BROWSER_VERSION=10
42
+ - env:
43
+ - JASMINE_BROWSER="internet explorer"
44
+ - SAUCE_OS="Windows 7"
45
+ - SAUCE_BROWSER_VERSION=9
46
+ - env:
47
+ - JASMINE_BROWSER="internet explorer"
48
+ - SAUCE_OS="Windows 7"
49
+ - SAUCE_BROWSER_VERSION=8
50
+ - env:
51
+ - JASMINE_BROWSER="chrome"
52
+ - SAUCE_OS="Linux"
53
+ - SAUCE_BROWSER_VERSION=''
54
+ - env:
55
+ - JASMINE_BROWSER="phantomjs"
56
+ - USE_SAUCE=false
@@ -1,6 +1,6 @@
1
1
  /*
2
2
 
3
- Jasmine-Ajax - v3.1.1: a set of helpers for testing AJAX requests under the Jasmine
3
+ Jasmine-Ajax - v3.3.1: a set of helpers for testing AJAX requests under the Jasmine
4
4
  BDD framework for JavaScript.
5
5
 
6
6
  http://github.com/jasmine/jasmine-ajax
@@ -30,6 +30,21 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30
30
 
31
31
  */
32
32
 
33
+ //Module wrapper to support both browser and CommonJS environment
34
+ (function (root, factory) {
35
+ // if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
36
+ // // CommonJS
37
+ // var jasmineRequire = require('jasmine-core');
38
+ // module.exports = factory(root, function() {
39
+ // return jasmineRequire;
40
+ // });
41
+ // } else {
42
+ // Browser globals
43
+ window.MockAjax = factory(root, getJasmineRequireObj);
44
+ // }
45
+ }(typeof window !== 'undefined' ? window : global, function (global, getJasmineRequireObj) {
46
+
47
+ //
33
48
  getJasmineRequireObj().ajax = function(jRequire) {
34
49
  var $ajax = {};
35
50
 
@@ -269,7 +284,15 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
269
284
  return null;
270
285
  }
271
286
 
272
- var iePropertiesThatCannotBeCopied = ['responseBody', 'responseText', 'responseXML', 'status', 'statusText', 'responseTimeout'];
287
+ extend(FakeXMLHttpRequest, {
288
+ UNSENT: 0,
289
+ OPENED: 1,
290
+ HEADERS_RECEIVED: 2,
291
+ LOADING: 3,
292
+ DONE: 4
293
+ });
294
+
295
+ var iePropertiesThatCannotBeCopied = ['responseBody', 'responseText', 'responseXML', 'status', 'statusText', 'responseTimeout', 'responseURL'];
273
296
  extend(FakeXMLHttpRequest.prototype, new global.XMLHttpRequest(), iePropertiesThatCannotBeCopied);
274
297
  extend(FakeXMLHttpRequest.prototype, {
275
298
  open: function() {
@@ -277,11 +300,16 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
277
300
  this.url = arguments[1];
278
301
  this.username = arguments[3];
279
302
  this.password = arguments[4];
280
- this.readyState = 1;
303
+ this.readyState = FakeXMLHttpRequest.OPENED;
304
+ this.requestHeaders = {};
281
305
  this.eventBus.trigger('readystatechange');
282
306
  },
283
307
 
284
308
  setRequestHeader: function(header, value) {
309
+ if (this.readyState === 0) {
310
+ throw new Error('DOMException: Failed to execute "setRequestHeader" on "XMLHttpRequest": The object\'s state must be OPENED.');
311
+ }
312
+
285
313
  if(this.requestHeaders.hasOwnProperty(header)) {
286
314
  this.requestHeaders[header] = [this.requestHeaders[header], value].join(', ');
287
315
  } else {
@@ -294,7 +322,7 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
294
322
  },
295
323
 
296
324
  abort: function() {
297
- this.readyState = 0;
325
+ this.readyState = FakeXMLHttpRequest.UNSENT;
298
326
  this.status = 0;
299
327
  this.statusText = "abort";
300
328
  this.eventBus.trigger('readystatechange');
@@ -303,7 +331,7 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
303
331
  this.eventBus.trigger('loadend');
304
332
  },
305
333
 
306
- readyState: 0,
334
+ readyState: FakeXMLHttpRequest.UNSENT,
307
335
 
308
336
  onloadstart: null,
309
337
  onprogress: null,
@@ -329,6 +357,11 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
329
357
  this.eventBus.trigger('loadstart');
330
358
 
331
359
  var stub = stubTracker.findStub(this.url, data, this.method);
360
+
361
+ this.dispatchStub(stub);
362
+ },
363
+
364
+ dispatchStub: function(stub) {
332
365
  if (stub) {
333
366
  if (stub.isReturn()) {
334
367
  this.respondWith(stub);
@@ -336,6 +369,8 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
336
369
  this.responseError();
337
370
  } else if (stub.isTimeout()) {
338
371
  this.responseTimeout();
372
+ } else if (stub.isCallFunction()) {
373
+ this.responseCallFunction(stub);
339
374
  }
340
375
  }
341
376
  },
@@ -353,8 +388,10 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
353
388
  },
354
389
 
355
390
  getResponseHeader: function(name) {
391
+ var resultHeader = null;
392
+ if (!this.responseHeaders) { return resultHeader; }
393
+
356
394
  name = name.toLowerCase();
357
- var resultHeader;
358
395
  for(var i = 0; i < this.responseHeaders.length; i++) {
359
396
  var header = this.responseHeaders[i];
360
397
  if (name === header.name.toLowerCase()) {
@@ -369,6 +406,8 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
369
406
  },
370
407
 
371
408
  getAllResponseHeaders: function() {
409
+ if (!this.responseHeaders) { return null; }
410
+
372
411
  var responseHeaders = [];
373
412
  for (var i = 0; i < this.responseHeaders.length; i++) {
374
413
  responseHeaders.push(this.responseHeaders[i].name + ': ' +
@@ -380,13 +419,14 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
380
419
  responseText: null,
381
420
  response: null,
382
421
  responseType: null,
422
+ responseURL: null,
383
423
 
384
424
  responseValue: function() {
385
425
  switch(this.responseType) {
386
426
  case null:
387
427
  case "":
388
428
  case "text":
389
- return this.readyState >= 3 ? this.responseText : "";
429
+ return this.readyState >= FakeXMLHttpRequest.LOADING ? this.responseText : "";
390
430
  case "json":
391
431
  return JSON.parse(this.responseText);
392
432
  case "arraybuffer":
@@ -400,19 +440,20 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
400
440
 
401
441
 
402
442
  respondWith: function(response) {
403
- if (this.readyState === 4) {
443
+ if (this.readyState === FakeXMLHttpRequest.DONE) {
404
444
  throw new Error("FakeXMLHttpRequest already completed");
405
445
  }
406
446
 
407
447
  this.status = response.status;
408
448
  this.statusText = response.statusText || "";
409
449
  this.responseHeaders = normalizeHeaders(response.responseHeaders, response.contentType);
410
- this.readyState = 2;
450
+ this.readyState = FakeXMLHttpRequest.HEADERS_RECEIVED;
411
451
  this.eventBus.trigger('readystatechange');
412
452
 
413
453
  this.responseText = response.responseText || "";
414
454
  this.responseType = response.responseType || "";
415
- this.readyState = 4;
455
+ this.responseURL = response.responseURL || null;
456
+ this.readyState = FakeXMLHttpRequest.DONE;
416
457
  this.responseXML = getResponseXml(response.responseText, this.getResponseHeader('content-type') || '');
417
458
  if (this.responseXML) {
418
459
  this.responseType = 'document';
@@ -431,10 +472,10 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
431
472
  },
432
473
 
433
474
  responseTimeout: function() {
434
- if (this.readyState === 4) {
475
+ if (this.readyState === FakeXMLHttpRequest.DONE) {
435
476
  throw new Error("FakeXMLHttpRequest already completed");
436
477
  }
437
- this.readyState = 4;
478
+ this.readyState = FakeXMLHttpRequest.DONE;
438
479
  jasmine.clock().tick(30000);
439
480
  this.eventBus.trigger('readystatechange');
440
481
  this.eventBus.trigger('progress');
@@ -443,14 +484,20 @@ getJasmineRequireObj().AjaxFakeRequest = function(eventBusFactory) {
443
484
  },
444
485
 
445
486
  responseError: function() {
446
- if (this.readyState === 4) {
487
+ if (this.readyState === FakeXMLHttpRequest.DONE) {
447
488
  throw new Error("FakeXMLHttpRequest already completed");
448
489
  }
449
- this.readyState = 4;
490
+ this.readyState = FakeXMLHttpRequest.DONE;
450
491
  this.eventBus.trigger('readystatechange');
451
492
  this.eventBus.trigger('progress');
452
493
  this.eventBus.trigger('error');
453
494
  this.eventBus.trigger('loadend');
495
+ },
496
+
497
+ responseCallFunction: function(stub) {
498
+ stub.action = undefined;
499
+ stub.functionToCall(stub, this);
500
+ this.dispatchStub(stub);
454
501
  }
455
502
  });
456
503
 
@@ -477,6 +524,9 @@ getJasmineRequireObj().MockAjax = function($ajax) {
477
524
  };
478
525
 
479
526
  this.uninstall = function() {
527
+ if (global.XMLHttpRequest !== mockAjaxFunction) {
528
+ throw "MockAjax not installed.";
529
+ }
480
530
  global.XMLHttpRequest = realAjaxFunction;
481
531
 
482
532
  this.stubs.reset();
@@ -570,7 +620,8 @@ getJasmineRequireObj().AjaxParamParser = function() {
570
620
  getJasmineRequireObj().AjaxRequestStub = function() {
571
621
  var RETURN = 0,
572
622
  ERROR = 1,
573
- TIMEOUT = 2;
623
+ TIMEOUT = 2,
624
+ CALL = 3;
574
625
 
575
626
  function RequestStub(url, stubData, method) {
576
627
  var normalizeQuery = function(query) {
@@ -597,6 +648,7 @@ getJasmineRequireObj().AjaxRequestStub = function() {
597
648
  this.response = options.response;
598
649
  this.responseText = options.responseText;
599
650
  this.responseHeaders = options.responseHeaders;
651
+ this.responseURL = options.responseURL;
600
652
  };
601
653
 
602
654
  this.isReturn = function() {
@@ -619,6 +671,15 @@ getJasmineRequireObj().AjaxRequestStub = function() {
619
671
  return this.action === TIMEOUT;
620
672
  };
621
673
 
674
+ this.andCallFunction = function(functionToCall) {
675
+ this.action = CALL;
676
+ this.functionToCall = functionToCall;
677
+ };
678
+
679
+ this.isCallFunction = function() {
680
+ return this.action === CALL;
681
+ };
682
+
622
683
  this.matches = function(fullUrl, data, method) {
623
684
  var urlMatches = false;
624
685
  fullUrl = fullUrl.toString();
@@ -720,14 +781,10 @@ getJasmineRequireObj().AjaxStubTracker = function() {
720
781
  return StubTracker;
721
782
  };
722
783
 
723
- (function() {
724
- var jRequire = getJasmineRequireObj(),
725
- MockAjax = jRequire.ajax(jRequire);
726
- if (typeof window === "undefined" && typeof exports === "object") {
727
- exports.MockAjax = MockAjax;
728
- jasmine.Ajax = new MockAjax(exports);
729
- } else {
730
- window.MockAjax = MockAjax;
731
- jasmine.Ajax = new MockAjax(window);
732
- }
733
- }());
784
+
785
+ var jRequire = getJasmineRequireObj();
786
+ var MockAjax = jRequire.ajax(jRequire);
787
+ jasmine.Ajax = new MockAjax(global);
788
+
789
+ return MockAjax;
790
+ }));
@@ -1,4 +1,4 @@
1
- /* jasmine-fixture - 1.3.3
1
+ /* jasmine-fixture - 1.3.4
2
2
  * Makes injecting HTML snippets into the DOM easy & clean!
3
3
  * https://github.com/searls/jasmine-fixture
4
4
  */
@@ -7,7 +7,7 @@
7
7
  __slice = [].slice;
8
8
 
9
9
  (function($) {
10
- var ewwSideEffects, jasmineFixture, originalAffix, originalJasmineDotFixture, originalJasmineFixture, root, _, _ref;
10
+ var jasmineFixture, originalAffix, originalJasmineDotFixture, originalJasmineFixture, root, _, _ref;
11
11
  root = (1, eval)('this');
12
12
  originalJasmineFixture = root.jasmineFixture;
13
13
  originalJasmineDotFixture = (_ref = root.jasmine) != null ? _ref.fixture : void 0;
@@ -26,7 +26,7 @@
26
26
  };
27
27
  };
28
28
  root.jasmineFixture = function($) {
29
- var $whatsTheRootOf, affix, create, jasmineFixture, noConflict;
29
+ var $whatsTheRootOf, affix, create, ewwSideEffects, jasmineFixture, noConflict;
30
30
  affix = function(selectorOptions) {
31
31
  return create.call(this, selectorOptions, true);
32
32
  };
@@ -66,6 +66,16 @@
66
66
  return $('<div id="jasmine_content"></div>').appendTo('body');
67
67
  }
68
68
  };
69
+ ewwSideEffects = function(jasmineFixture) {
70
+ var _ref1;
71
+ if ((_ref1 = root.jasmine) != null) {
72
+ _ref1.fixture = jasmineFixture;
73
+ }
74
+ $.fn.affix = root.affix = jasmineFixture.affix;
75
+ return afterEach(function() {
76
+ return $('#jasmine_content').remove();
77
+ });
78
+ };
69
79
  jasmineFixture = {
70
80
  affix: affix,
71
81
  create: create,
@@ -74,16 +84,6 @@
74
84
  ewwSideEffects(jasmineFixture);
75
85
  return jasmineFixture;
76
86
  };
77
- ewwSideEffects = function(jasmineFixture) {
78
- var _ref1;
79
- if ((_ref1 = root.jasmine) != null) {
80
- _ref1.fixture = jasmineFixture;
81
- }
82
- $.fn.affix = root.affix = jasmineFixture.affix;
83
- return afterEach(function() {
84
- return $('#jasmine_content').remove();
85
- });
86
- };
87
87
  if ($) {
88
88
  return jasmineFixture = root.jasmineFixture($);
89
89
  } else {
File without changes