unpoly-rails 0.23.0 → 0.24.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +68 -0
  3. data/dist/unpoly-bootstrap3.js +1 -1
  4. data/dist/unpoly-bootstrap3.min.js +1 -1
  5. data/dist/unpoly.css +18 -8
  6. data/dist/unpoly.js +498 -265
  7. data/dist/unpoly.min.css +1 -1
  8. data/dist/unpoly.min.js +3 -3
  9. data/lib/assets/javascripts/unpoly-bootstrap3/modal-ext.js.coffee +5 -2
  10. data/lib/assets/javascripts/unpoly/flow.js.coffee +3 -1
  11. data/lib/assets/javascripts/unpoly/form.js.coffee +3 -6
  12. data/lib/assets/javascripts/unpoly/layout.js.coffee +1 -1
  13. data/lib/assets/javascripts/unpoly/link.js.coffee +4 -2
  14. data/lib/assets/javascripts/unpoly/log.js.coffee +2 -2
  15. data/lib/assets/javascripts/unpoly/modal.js.coffee +125 -36
  16. data/lib/assets/javascripts/unpoly/motion.js.coffee +75 -37
  17. data/lib/assets/javascripts/unpoly/navigation.js.coffee +38 -26
  18. data/lib/assets/javascripts/unpoly/proxy.js.coffee +77 -52
  19. data/lib/assets/javascripts/unpoly/syntax.js.coffee +1 -0
  20. data/lib/assets/javascripts/unpoly/tooltip.js.coffee +2 -0
  21. data/lib/assets/javascripts/unpoly/util.js.coffee +138 -46
  22. data/lib/assets/stylesheets/unpoly/link.css.sass +1 -1
  23. data/lib/assets/stylesheets/unpoly/modal.css.sass +28 -15
  24. data/lib/unpoly/rails/version.rb +1 -1
  25. data/spec_app/Gemfile.lock +7 -7
  26. data/spec_app/spec/javascripts/helpers/reset_up.js.coffee +2 -0
  27. data/spec_app/spec/javascripts/helpers/to_contain.js.coffee +5 -0
  28. data/spec_app/spec/javascripts/up/flow_spec.js.coffee +2 -2
  29. data/spec_app/spec/javascripts/up/history_spec.js.coffee +6 -4
  30. data/spec_app/spec/javascripts/up/link_spec.js.coffee +114 -5
  31. data/spec_app/spec/javascripts/up/modal_spec.js.coffee +28 -18
  32. data/spec_app/spec/javascripts/up/motion_spec.js.coffee +112 -7
  33. data/spec_app/spec/javascripts/up/navigation_spec.js.coffee +157 -121
  34. data/spec_app/spec/javascripts/up/popup_spec.js.coffee +1 -1
  35. data/spec_app/spec/javascripts/up/proxy_spec.js.coffee +42 -3
  36. data/spec_app/spec/javascripts/up/syntax_spec.js.coffee +1 -2
  37. data/spec_app/spec/javascripts/up/util_spec.js.coffee +26 -1
  38. data/spec_app/vendor/assets/bower_components/jquery/.bower.json +1 -1
  39. metadata +3 -3
  40. data/spec_app/spec/javascripts/helpers/set_timer.js.coffee +0 -3
@@ -10,6 +10,20 @@ describe 'up.proxy', ->
10
10
 
11
11
  describe 'up.ajax', ->
12
12
 
13
+ it 'makes a request with the given URL and params', ->
14
+ up.ajax('/foo', data: { key: 'value' }, method: 'post')
15
+ request = @lastRequest()
16
+ expect(request.url).toEndWith('/foo')
17
+ expect(request.data()).toEqual(key: ['value'])
18
+ expect(request.method).toEqual('POST')
19
+
20
+ it 'also allows to pass the URL as a { url } option instead', ->
21
+ up.ajax(url: '/foo', data: { key: 'value' }, method: 'post')
22
+ request = @lastRequest()
23
+ expect(request.url).toEndWith('/foo')
24
+ expect(request.data()).toEqual(key: ['value'])
25
+ expect(request.method).toEqual('POST')
26
+
13
27
  it 'caches server responses for 5 minutes', ->
14
28
  responses = []
15
29
 
@@ -40,6 +54,30 @@ describe 'up.proxy', ->
40
54
 
41
55
  expect(responses).toEqual(['foo', 'foo', 'bar'])
42
56
 
57
+ it "does not cache responses if config.cacheExpiry is 0", ->
58
+ up.proxy.config.cacheExpiry = 0
59
+ up.ajax(url: '/foo')
60
+ up.ajax(url: '/foo')
61
+ expect(jasmine.Ajax.requests.count()).toEqual(2)
62
+
63
+ it "does not cache responses if config.cacheSize is 0", ->
64
+ up.proxy.config.cacheSize = 0
65
+ up.ajax(url: '/foo')
66
+ up.ajax(url: '/foo')
67
+ expect(jasmine.Ajax.requests.count()).toEqual(2)
68
+
69
+ it 'does not limit the number of cache entries if config.cacheSize is undefined'
70
+
71
+ it 'never discards old cache entries if config.cacheExpiry is undefined'
72
+
73
+ it 'respects a config.cacheSize setting', ->
74
+ up.proxy.config.cacheSize = 2
75
+ up.ajax(url: '/foo')
76
+ up.ajax(url: '/bar')
77
+ up.ajax(url: '/baz')
78
+ up.ajax(url: '/foo')
79
+ expect(jasmine.Ajax.requests.count()).toEqual(4)
80
+
43
81
  it "doesn't reuse responses when asked for the same path, but different selectors", ->
44
82
  up.ajax(url: '/path', target: '.a')
45
83
  up.ajax(url: '/path', target: '.b')
@@ -101,6 +139,7 @@ describe 'up.proxy', ->
101
139
 
102
140
  expect(jasmine.Ajax.requests.count()).toEqual(2)
103
141
 
142
+
104
143
  describe 'with config.wrapMethods set', ->
105
144
 
106
145
  it 'should be set by default', ->
@@ -362,10 +401,10 @@ describe 'up.proxy', ->
362
401
  spyOn(up, 'follow')
363
402
  $element = affix('a[href="/foo"][up-preload]')
364
403
  Trigger.mouseover($element)
365
- @setTimer 1, =>
404
+ u.setTimer 1, =>
366
405
  expect(up.follow.calls.count()).toBe(1)
367
- @setTimer 16, =>
406
+ u.setTimer 16, =>
368
407
  Trigger.mouseover($element)
369
- @setTimer 1, =>
408
+ u.setTimer 1, =>
370
409
  expect(up.follow.calls.count()).toBe(2)
371
410
  done()
@@ -14,9 +14,8 @@ describe 'up.syntax', ->
14
14
 
15
15
  expect(observeClass).not.toHaveBeenCalledWith('container')
16
16
  expect(observeClass).toHaveBeenCalledWith('child')
17
-
18
17
 
19
- destructor = jasmine.createSpy()
18
+ destructor = jasmine.createSpy('destructor')
20
19
  up.compiler '.child', ($element) ->
21
20
  destructor
22
21
 
@@ -2,12 +2,36 @@ describe 'up.util', ->
2
2
 
3
3
  describe 'Javascript functions', ->
4
4
 
5
- # describe 'up.util.argNames', ->
5
+ describe 'up.util.setTimer', ->
6
+
7
+ it 'calls the given function after waiting the given milliseconds', ->
8
+ jasmine.clock().install()
9
+ jasmine.clock().mockDate()
10
+ callback = jasmine.createSpy()
11
+ up.util.setTimer(2000, callback)
12
+ expect(callback).not.toHaveBeenCalled()
13
+ jasmine.clock().tick(1500)
14
+ expect(callback).not.toHaveBeenCalled()
15
+ jasmine.clock().tick(1500)
16
+ expect(callback).toHaveBeenCalled()
17
+
18
+ it 'calls the given function in the current execution frame if the delay is zero', ->
19
+ callback = jasmine.createSpy()
20
+ up.util.setTimer(0, callback)
21
+ expect(callback).toHaveBeenCalled()
22
+
23
+ # describe 'up.util.argNames', ->
6
24
  #
7
25
  # it 'returns an array of argument names for the given function', ->
8
26
  # fun = ($element, data) ->
9
27
  # expect(up.util.argNames(fun)).toEqual(['$element', 'data'])
10
28
 
29
+ describe 'up.util.trim', ->
30
+
31
+ it 'removes leading and trailing whitespace from the given string', ->
32
+ string = "\t\n\r abc \r\n\t"
33
+ expect(up.util.trim(string)).toEqual('abc')
34
+
11
35
  describe 'up.util.only', ->
12
36
 
13
37
  it 'returns a copy of the given object with only the given whitelisted properties', ->
@@ -399,3 +423,4 @@ describe 'up.util', ->
399
423
  expect(array).toEqual([
400
424
  { name: 'my=key', value: 'my=value' },
401
425
  ])
426
+
@@ -1,4 +1,4 @@
1
- {
1
+ {
2
2
  "name": "jquery",
3
3
  "version": "2.1.4",
4
4
  "main": "dist/jquery.js",
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unpoly-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.0
4
+ version: 0.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henning Koch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-28 00:00:00.000000000 Z
11
+ date: 2016-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -206,12 +206,12 @@ files:
206
206
  - spec_app/spec/javascripts/helpers/reset_path.js.coffee
207
207
  - spec_app/spec/javascripts/helpers/reset_up.js.coffee
208
208
  - spec_app/spec/javascripts/helpers/restore_body_scroll.js.coffee
209
- - spec_app/spec/javascripts/helpers/set_timer.js.coffee
210
209
  - spec_app/spec/javascripts/helpers/to_be_around.js.coffee
211
210
  - spec_app/spec/javascripts/helpers/to_be_blank.js.coffee
212
211
  - spec_app/spec/javascripts/helpers/to_be_given.js.coffee
213
212
  - spec_app/spec/javascripts/helpers/to_be_missing.js.coffee
214
213
  - spec_app/spec/javascripts/helpers/to_be_present.js.coffee
214
+ - spec_app/spec/javascripts/helpers/to_contain.js.coffee
215
215
  - spec_app/spec/javascripts/helpers/to_end_with.js.coffee
216
216
  - spec_app/spec/javascripts/helpers/to_equal_jquery.js.coffee
217
217
  - spec_app/spec/javascripts/helpers/to_have_request_method.js.coffee
@@ -1,3 +0,0 @@
1
- beforeEach ->
2
- @setTimer = (millis, fun) ->
3
- setTimeout(fun, millis)