puffing-billy 2.4.0 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +2 -2
  4. data/lib/billy/browsers/capybara.rb +13 -9
  5. data/lib/billy/browsers/watir.rb +4 -2
  6. data/lib/billy/proxy.rb +1 -1
  7. data/lib/billy/version.rb +1 -1
  8. metadata +29 -79
  9. data/.gitignore +0 -6
  10. data/.rspec +0 -2
  11. data/.travis.yml +0 -36
  12. data/Dockerfile +0 -14
  13. data/Gemfile +0 -4
  14. data/Guardfile +0 -23
  15. data/Rakefile +0 -11
  16. data/bin/proxy.rb +0 -3
  17. data/examples/README.md +0 -1
  18. data/examples/facebook_api.html +0 -59
  19. data/examples/intercept_request.html +0 -10
  20. data/examples/post_api.html +0 -16
  21. data/examples/preflight_request.html +0 -22
  22. data/examples/tumblr_api.html +0 -22
  23. data/examples/tumblr_api_https.html +0 -22
  24. data/log/.gitkeep +0 -0
  25. data/puffing-billy.gemspec +0 -39
  26. data/spec/features/examples/facebook_api_spec.rb +0 -23
  27. data/spec/features/examples/intercept_request_spec.rb +0 -31
  28. data/spec/features/examples/post_api_spec.rb +0 -15
  29. data/spec/features/examples/preflight_request_spec.rb +0 -29
  30. data/spec/features/examples/tumblr_api_spec.rb +0 -59
  31. data/spec/lib/billy/browsers/capybara_spec.rb +0 -28
  32. data/spec/lib/billy/cache_spec.rb +0 -158
  33. data/spec/lib/billy/handlers/cache_handler_spec.rb +0 -191
  34. data/spec/lib/billy/handlers/handler_spec.rb +0 -16
  35. data/spec/lib/billy/handlers/proxy_handler_spec.rb +0 -254
  36. data/spec/lib/billy/handlers/request_handler_spec.rb +0 -200
  37. data/spec/lib/billy/handlers/request_log_spec.rb +0 -74
  38. data/spec/lib/billy/handlers/stub_handler_spec.rb +0 -117
  39. data/spec/lib/billy/proxy_connection_spec.rb +0 -20
  40. data/spec/lib/billy/proxy_request_stub_spec.rb +0 -252
  41. data/spec/lib/billy/resource_utils_spec.rb +0 -55
  42. data/spec/lib/billy/ssl/authority_spec.rb +0 -84
  43. data/spec/lib/billy/ssl/certificate_chain_spec.rb +0 -39
  44. data/spec/lib/billy/ssl/certificate_spec.rb +0 -89
  45. data/spec/lib/billy/watir/watir_spec.rb +0 -18
  46. data/spec/lib/proxy_spec.rb +0 -431
  47. data/spec/spec_helper.rb +0 -52
  48. data/spec/support/test_server.rb +0 -79
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 98ce893c9461f4f8c8eedd69eee46870634f789dd03a2007370bb7b03361bc26
4
- data.tar.gz: 35f7939ff8eb3cbccd4bf4e91ccefbddd1b4b999fddfbc86ec0ff82885ae0dad
3
+ metadata.gz: 3d2331e867abf32f326b7c70cd9b40604bc865a122b4ae86fa2e80d937f34659
4
+ data.tar.gz: 7641cae1895a3922ea7c799cfa8274fbcc119571336428649f869614df58d759
5
5
  SHA512:
6
- metadata.gz: 73d5bc111493abd8a2bf9157f9bc3b717f0d4bc2a9276a757280d6e6ad7b3e5a1acd90a30234e00bdd9245380f6d9c00aa9bb86c3ec6bd7eed46643af1b85451
7
- data.tar.gz: a32ac78dec161016266bf1ac2d2cdedcb68247c03cea681f096dc1dd4eb73dd4d166f27173a9f8b0040df39fd168d97010960a074b8b23c49183bee6a737bd50
6
+ metadata.gz: 2b95020cc16529fc786eb38341c4bc0ab97fa150fd8aa9b1ffae30e6a28905c54f04b80c55eda8c817f057a43937f3e1b089a18d13ef1ceda8a9e2dedbb737c9
7
+ data.tar.gz: e474b6370e0f648bfda03afdd7fc2b0ad6354517d55fbc283c449e8e46609daf9cc977fa11a4c709dd2993b8abd9ca9f6c79924c30f43de39b41751d8a326b7f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ v3.0.2, 2022-02-16
2
+ -------------------
3
+ * Add rake tasks inside files DSL in gemspec [#321](https://github.com/oesmith/puffing-billy/pull/321)
4
+
5
+ v3.0.1, 2022-02-15
6
+ -------------------
7
+ * Adapt to newer versions selenium webdriver [#314](https://github.com/oesmith/puffing-billy/pull/314)
8
+
9
+ v3.0.0, 2022-02-15
10
+ -------------------
11
+ * Add support for Ruby 2.7+, remove support for Ruby 2.4 and 2.5
12
+
13
+ v2.4.1, 2021-01-05
14
+ -------------------
15
+ * Rescue Errno::ECONNRESET in shutdown phase [#307](https://github.com/oesmith/puffing-billy/pull/307)
16
+
1
17
  v2.4.0, 2020-08-26
2
18
  -------------------
3
19
  * Make verify_peer configurable and default it to false [#294](https://github.com/oesmith/puffing-billy/pull/294)
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Puffing Billy [![Gem Version](https://badge.fury.io/rb/puffing-billy.svg)](https://badge.fury.io/rb/puffing-billy) [![Build Status](https://travis-ci.org/oesmith/puffing-billy.svg?branch=master)](https://travis-ci.org/oesmith/puffing-billy)
1
+ # Puffing Billy [![Gem Version](https://badge.fury.io/rb/puffing-billy.svg)](https://badge.fury.io/rb/puffing-billy) ![Build Status](https://github.com/oesmith/puffing-billy/actions/workflows/ci.yml/badge.svg)
2
2
 
3
3
  A rewriting web proxy for testing interactions between your browser and
4
4
  external sites. Works with ruby + rspec.
@@ -437,7 +437,7 @@ The handler column indicates how Puffing Billy handled your request:
437
437
  - error: This request was not handled by a stub, and was not successfully handled
438
438
  - cache: This response was handled by a previous cache
439
439
 
440
- If your `status` is set to in_flight this request has not yet been handled fully. Either puffing billy crashed
440
+ If your `status` is set to `inflight` this request has not yet been handled fully. Either puffing billy crashed
441
441
  internally on this request, or your test ended before it could complete successfully.
442
442
 
443
443
  `c.cache_request_body_methods` is used to specify HTTP methods of requests that you would like to cache separately based on the contents of the request body. The default is ['post'].
@@ -47,19 +47,24 @@ module Billy
47
47
 
48
48
  def self.register_selenium_driver
49
49
  ::Capybara.register_driver :selenium_billy do |app|
50
- options = build_selenium_options_for_firefox
51
- capabilities = Selenium::WebDriver::Remote::Capabilities.firefox(accept_insecure_certs: true)
50
+ capabilities = [
51
+ build_selenium_options_for_firefox,
52
+ Selenium::WebDriver::Remote::Capabilities.firefox(accept_insecure_certs: true)
53
+ ]
52
54
 
53
- ::Capybara::Selenium::Driver.new(app, options: options, desired_capabilities: capabilities)
55
+ ::Capybara::Selenium::Driver.new(app, capabilities: capabilities)
54
56
  end
55
57
 
56
58
  ::Capybara.register_driver :selenium_headless_billy do |app|
57
59
  options = build_selenium_options_for_firefox.tap do |opts|
58
60
  opts.add_argument '-headless'
59
61
  end
60
- capabilities = Selenium::WebDriver::Remote::Capabilities.firefox(accept_insecure_certs: true)
61
-
62
- ::Capybara::Selenium::Driver.new(app, options: options, desired_capabilities: capabilities)
62
+ capabilities = [
63
+ options,
64
+ Selenium::WebDriver::Remote::Capabilities.firefox(accept_insecure_certs: true)
65
+ ]
66
+
67
+ ::Capybara::Selenium::Driver.new(app, capabilities: capabilities)
63
68
  end
64
69
 
65
70
  ::Capybara.register_driver :selenium_chrome_billy do |app|
@@ -70,7 +75,7 @@ module Billy
70
75
  ::Capybara::Selenium::Driver.new(
71
76
  app,
72
77
  browser: :chrome,
73
- options: options,
78
+ capabilities: options,
74
79
  clear_local_storage: true,
75
80
  clear_session_storage: true
76
81
  )
@@ -88,7 +93,7 @@ module Billy
88
93
  ::Capybara::Selenium::Driver.new(
89
94
  app,
90
95
  browser: :chrome,
91
- options: options,
96
+ capabilities: options,
92
97
  clear_local_storage: true,
93
98
  clear_session_storage: true
94
99
  )
@@ -105,7 +110,6 @@ module Billy
105
110
 
106
111
  def self.build_selenium_options_for_firefox
107
112
  profile = Selenium::WebDriver::Firefox::Profile.new.tap do |prof|
108
- prof.assume_untrusted_certificate_issuer = false
109
113
  prof.proxy = Selenium::WebDriver::Proxy.new(
110
114
  http: "#{Billy.proxy.host}:#{Billy.proxy.port}",
111
115
  ssl: "#{Billy.proxy.host}:#{Billy.proxy.port}")
@@ -20,8 +20,10 @@ module Billy
20
20
 
21
21
  def configure_chrome(args)
22
22
  args[:headless] = true
23
- args[:switches] ||= []
24
- args[:switches] += %W[--proxy-server=#{Billy.proxy.host}:#{Billy.proxy.port}]
23
+ args[:proxy] = {
24
+ http: "#{Billy.proxy.host}:#{Billy.proxy.port}",
25
+ ssl: "#{Billy.proxy.host}:#{Billy.proxy.port}"
26
+ }
25
27
  args
26
28
  end
27
29
 
data/lib/billy/proxy.rb CHANGED
@@ -62,7 +62,7 @@ module Billy
62
62
  s.close
63
63
  Billy.log(:info, "puffing-billy: Waiting for event machine to shutdown on port #{port}")
64
64
  s
65
- rescue Errno::ECONNREFUSED, Errno::EADDRNOTAVAIL, Errno::ENETUNREACH
65
+ rescue Errno::ECONNREFUSED, Errno::EADDRNOTAVAIL, Errno::ENETUNREACH, Errno::ECONNRESET
66
66
  false
67
67
  end
68
68
 
data/lib/billy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Billy
2
- VERSION = '2.4.0'
2
+ VERSION = '3.0.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puffing-billy
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Olly Smith
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-27 00:00:00.000000000 Z
11
+ date: 2022-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 4.0.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: 4.0.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rack
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -184,16 +184,30 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 6.10.0
187
+ version: 7.1.0
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: 6.10.0
194
+ version: 7.1.0
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: webdrivers
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: 5.0.0
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: 5.0.0
209
+ - !ruby/object:Gem::Dependency
210
+ name: webrick
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - ">="
@@ -314,29 +328,13 @@ description: A stubbing proxy server for ruby. Connect it to your browser in int
314
328
  tests to fake interactions with remote HTTP(S) servers.
315
329
  email:
316
330
  - olly.smith@gmail.com
317
- executables:
318
- - proxy.rb
331
+ executables: []
319
332
  extensions: []
320
333
  extra_rdoc_files: []
321
334
  files:
322
- - ".gitignore"
323
- - ".rspec"
324
- - ".travis.yml"
325
335
  - CHANGELOG.md
326
- - Dockerfile
327
- - Gemfile
328
- - Guardfile
329
336
  - LICENSE
330
337
  - README.md
331
- - Rakefile
332
- - bin/proxy.rb
333
- - examples/README.md
334
- - examples/facebook_api.html
335
- - examples/intercept_request.html
336
- - examples/post_api.html
337
- - examples/preflight_request.html
338
- - examples/tumblr_api.html
339
- - examples/tumblr_api_https.html
340
338
  - lib/billy.rb
341
339
  - lib/billy/browsers/capybara.rb
342
340
  - lib/billy/browsers/watir.rb
@@ -369,35 +367,11 @@ files:
369
367
  - lib/puffing-billy.rb
370
368
  - lib/puffing-billy/rspec.rb
371
369
  - lib/tasks/billy.rake
372
- - log/.gitkeep
373
- - puffing-billy.gemspec
374
- - spec/features/examples/facebook_api_spec.rb
375
- - spec/features/examples/intercept_request_spec.rb
376
- - spec/features/examples/post_api_spec.rb
377
- - spec/features/examples/preflight_request_spec.rb
378
- - spec/features/examples/tumblr_api_spec.rb
379
- - spec/lib/billy/browsers/capybara_spec.rb
380
- - spec/lib/billy/cache_spec.rb
381
- - spec/lib/billy/handlers/cache_handler_spec.rb
382
- - spec/lib/billy/handlers/handler_spec.rb
383
- - spec/lib/billy/handlers/proxy_handler_spec.rb
384
- - spec/lib/billy/handlers/request_handler_spec.rb
385
- - spec/lib/billy/handlers/request_log_spec.rb
386
- - spec/lib/billy/handlers/stub_handler_spec.rb
387
- - spec/lib/billy/proxy_connection_spec.rb
388
- - spec/lib/billy/proxy_request_stub_spec.rb
389
- - spec/lib/billy/resource_utils_spec.rb
390
- - spec/lib/billy/ssl/authority_spec.rb
391
- - spec/lib/billy/ssl/certificate_chain_spec.rb
392
- - spec/lib/billy/ssl/certificate_spec.rb
393
- - spec/lib/billy/watir/watir_spec.rb
394
- - spec/lib/proxy_spec.rb
395
- - spec/spec_helper.rb
396
- - spec/support/test_server.rb
397
370
  homepage: https://github.com/oesmith/puffing-billy
398
- licenses: []
371
+ licenses:
372
+ - MIT
399
373
  metadata: {}
400
- post_install_message:
374
+ post_install_message:
401
375
  rdoc_options: []
402
376
  require_paths:
403
377
  - lib
@@ -405,39 +379,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
405
379
  requirements:
406
380
  - - ">="
407
381
  - !ruby/object:Gem::Version
408
- version: '0'
382
+ version: 2.6.0
409
383
  required_rubygems_version: !ruby/object:Gem::Requirement
410
384
  requirements:
411
385
  - - ">="
412
386
  - !ruby/object:Gem::Version
413
387
  version: '0'
414
388
  requirements: []
415
- rubyforge_project:
416
- rubygems_version: 2.7.3
417
- signing_key:
389
+ rubygems_version: 3.2.22
390
+ signing_key:
418
391
  specification_version: 4
419
392
  summary: Easy request stubs for browser tests.
420
- test_files:
421
- - spec/features/examples/facebook_api_spec.rb
422
- - spec/features/examples/intercept_request_spec.rb
423
- - spec/features/examples/post_api_spec.rb
424
- - spec/features/examples/preflight_request_spec.rb
425
- - spec/features/examples/tumblr_api_spec.rb
426
- - spec/lib/billy/browsers/capybara_spec.rb
427
- - spec/lib/billy/cache_spec.rb
428
- - spec/lib/billy/handlers/cache_handler_spec.rb
429
- - spec/lib/billy/handlers/handler_spec.rb
430
- - spec/lib/billy/handlers/proxy_handler_spec.rb
431
- - spec/lib/billy/handlers/request_handler_spec.rb
432
- - spec/lib/billy/handlers/request_log_spec.rb
433
- - spec/lib/billy/handlers/stub_handler_spec.rb
434
- - spec/lib/billy/proxy_connection_spec.rb
435
- - spec/lib/billy/proxy_request_stub_spec.rb
436
- - spec/lib/billy/resource_utils_spec.rb
437
- - spec/lib/billy/ssl/authority_spec.rb
438
- - spec/lib/billy/ssl/certificate_chain_spec.rb
439
- - spec/lib/billy/ssl/certificate_spec.rb
440
- - spec/lib/billy/watir/watir_spec.rb
441
- - spec/lib/proxy_spec.rb
442
- - spec/spec_helper.rb
443
- - spec/support/test_server.rb
393
+ test_files: []
data/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- node_modules/
2
- /Gemfile.lock
3
- log/test.log
4
- .idea/
5
- .ruby-version
6
- *.swp
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- --format progress
data/.travis.yml DELETED
@@ -1,36 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 2.3
5
- - 2.4
6
- - 2.5
7
- - 2.6
8
-
9
- cache:
10
- bundler: true
11
- directories:
12
- - $HOME/.webdrivers
13
-
14
- addons:
15
- chrome: stable
16
- apt:
17
- update: true
18
-
19
- sudo: false
20
- dist: xenial
21
-
22
- rvm:
23
- - 2.3
24
- - 2.4
25
- - 2.5
26
- - 2.6
27
-
28
- matrix:
29
- fast_finish: true
30
-
31
- bundler_args: --jobs 3 --retry 3
32
-
33
- before_install:
34
- - gem update --system
35
- - gem install bundler
36
-
data/Dockerfile DELETED
@@ -1,14 +0,0 @@
1
- FROM ruby:1.9.3
2
-
3
- RUN apt-get update -y
4
- RUN apt-get install -y qt5-default libqt5webkit5-dev gstreamer1.0-plugins-base gstreamer1.0-tools gstreamer1.0-x
5
- RUN gem install bundler
6
- RUN \
7
- export PHANTOMJS_VERSION='2.1.1' && \
8
- export PHANTOMJS_URL='https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2' && \
9
- wget -q ${PHANTOMJS_URL} && \
10
- tar xfv phantomjs-${PHANTOMJS_VERSION}-linux-x86_64.tar.bz2 \
11
- -C /usr/bin --wildcards */bin/phantomjs --strip-components=2
12
- RUN mkdir -p /app
13
- COPY . /app
14
- RUN cd /app && bundle install
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in puffing-billy.gemspec
4
- gemspec
data/Guardfile DELETED
@@ -1,23 +0,0 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- guard 'rspec', version: 2 do
5
- watch(%r{^spec/.+_spec\.rb$})
6
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
- watch('spec/spec_helper.rb') { 'spec' }
8
-
9
- # Rails example
10
- watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
- watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
- watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
13
- watch(%r{^spec/support/(.+)\.rb$}) { 'spec' }
14
- watch('config/routes.rb') { 'spec/routing' }
15
- watch('app/controllers/application_controller.rb') { 'spec/controllers' }
16
-
17
- # Capybara request specs
18
- watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
19
-
20
- # Turnip features and steps
21
- watch(%r{^spec/acceptance/(.+)\.feature$})
22
- watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
23
- end
data/Rakefile DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env rake
2
- require 'bundler/gem_tasks'
3
-
4
- begin
5
- require 'rspec/core/rake_task'
6
- RSpec::Core::RakeTask.new(:spec)
7
- rescue LoadError
8
- end
9
-
10
- desc 'Run all tests'
11
- task default: [:spec]
data/bin/proxy.rb DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'billy'
3
- Billy::Proxy.new.start(false)
data/examples/README.md DELETED
@@ -1 +0,0 @@
1
- See example specs in `spec/requests/examples`.
@@ -1,59 +0,0 @@
1
- <div id="fb-root"></div>
2
- <script>
3
- // Load the SDK Asynchronously
4
- (function(d){
5
- var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
6
- if (d.getElementById(id)) {return;}
7
- js = d.createElement('script'); js.id = id; js.async = true;
8
- js.src = "//connect.facebook.net/en_US/all.js";
9
- ref.parentNode.insertBefore(js, ref);
10
- }(document));
11
-
12
- // Init the SDK upon load
13
- window.fbAsyncInit = function() {
14
- FB.init({
15
- appId : '408416075843608', // App ID
16
- //channelUrl : '//'+window.location.hostname+'/channel', // Path to your Channel File
17
- status : true, // check login status
18
- cookie : true, // enable cookies to allow the server to access the session
19
- xfbml : true // parse XFBML
20
- });
21
-
22
- // listen for and handle auth.statusChange events
23
- FB.Event.subscribe('auth.statusChange', function(response) {
24
- if (response.authResponse) {
25
- // user has auth'd your app and is logged into Facebook
26
- FB.api('/me', function(me){
27
- if (me.name) {
28
- document.getElementById('auth-displayname').innerHTML = me.name;
29
- }
30
- })
31
- document.getElementById('auth-loggedout').style.display = 'none';
32
- document.getElementById('auth-loggedin').style.display = 'block';
33
- } else {
34
- // user has not auth'd your app, or is not logged into Facebook
35
- document.getElementById('auth-loggedout').style.display = 'block';
36
- document.getElementById('auth-loggedin').style.display = 'none';
37
- }
38
- });
39
-
40
- // respond to clicks on the login and logout links
41
- document.getElementById('auth-loginlink').addEventListener('click', function(){
42
- FB.login();
43
- });
44
- document.getElementById('auth-logoutlink').addEventListener('click', function(){
45
- FB.logout();
46
- });
47
- }
48
- </script>
49
-
50
- <h1>Facebook Client-side Authentication Example</h1>
51
- <div id="auth-status">
52
- <div id="auth-loggedout">
53
- <a href="#" id="auth-loginlink">Login</a>
54
- </div>
55
- <div id="auth-loggedin" style="display:none">
56
- Hi, <span id="auth-displayname"></span>
57
- (<a href="#" id="auth-logoutlink">logout</a>)
58
- </div>
59
- </div>
@@ -1,10 +0,0 @@
1
- <!DOCTYPE html>
2
- <body>
3
- <h1>Intercept request example</h1>
4
- <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.min.js'></script>
5
- <script type='text/javascript'>
6
- $(function () {
7
- $.post('http://example.com/', { foo: 'bar' });
8
- })
9
- </script>
10
- </body>
@@ -1,16 +0,0 @@
1
- <!doctype html>
2
- <body>
3
- <h1>POST to API</h1>
4
- <div id="result"></div>
5
- <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.min.js'></script>
6
- <script type='text/javascript'>
7
- $(function () {
8
- $.post('http://example.com/api', { foo: 'bar' }).done(function(data) {
9
- $('#result').append('Success!');
10
- })
11
- .fail(function(data) {
12
- $('#result').append('Fail!');
13
- });
14
- })
15
- </script>
16
- </body>
@@ -1,22 +0,0 @@
1
- <!doctype html>
2
- <body>
3
- <h1>Cross Domain Request</h1>
4
- <div id="result"></div>
5
- <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.min.js'></script>
6
- <script type='text/javascript'>
7
- $(function () {
8
- $.ajax(
9
- {
10
- url: 'http://example.com/api',
11
- method: 'GET',
12
- contentType: 'json' // setting this forces an OPTIONS request
13
- }
14
- ).done(function(data) {
15
- $('#result').append('Success!');
16
- })
17
- .fail(function(data) {
18
- $('#result').append('Fail!');
19
- });
20
- })
21
- </script>
22
- </body>
@@ -1,22 +0,0 @@
1
- <!doctype html>
2
- <body>
3
- <h1>Latest news</h1>
4
- <div id="news"></div>
5
-
6
- <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.min.js'></script>
7
- <script type='text/javascript'>
8
- $(function () {
9
- var url = 'http://blog.howmanyleft.co.uk/api/read/json?callback=?&type=text&num=3&filter=text';
10
- $.getJSON(url, function (data) {
11
- $.each(data.posts, function (idx, post) {
12
- var title = post['regular-title'];
13
- var href = post['url-with-slug'];
14
- var body = post['regular-body'];
15
- $('#news').append(
16
- '<h3><a href="' + href + '">' + title + '</a></h3>' +
17
- '<p>' + body + '</p>');
18
- });
19
- });
20
- })
21
- </script>
22
- </body>
@@ -1,22 +0,0 @@
1
- <!doctype html>
2
- <body>
3
- <h1>Latest news</h1>
4
- <div id="news"></div>
5
-
6
- <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.min.js'></script>
7
- <script type='text/javascript'>
8
- $(function () {
9
- var url = 'https://blog.howmanyleft.co.uk/api/read/json?callback=?&type=text&num=3&filter=text';
10
- $.getJSON(url, function (data) {
11
- $.each(data.posts, function (idx, post) {
12
- var title = post['regular-title'];
13
- var href = post['url-with-slug'];
14
- var body = post['regular-body'];
15
- $('#news').append(
16
- '<h3><a href="' + href + '">' + title + '</a></h3>' +
17
- '<p>' + body + '</p>');
18
- });
19
- });
20
- })
21
- </script>
22
- </body>
data/log/.gitkeep DELETED
File without changes
@@ -1,39 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/billy/version', __FILE__)
3
-
4
- Gem::Specification.new do |gem|
5
- gem.authors = ['Olly Smith']
6
- gem.email = ['olly.smith@gmail.com']
7
- gem.description = 'A stubbing proxy server for ruby. Connect it to your browser in integration tests to fake interactions with remote HTTP(S) servers.'
8
- gem.summary = 'Easy request stubs for browser tests.'
9
- gem.homepage = 'https://github.com/oesmith/puffing-billy'
10
-
11
- gem.files = `git ls-files`.split($OUTPUT_RECORD_SEPARATOR)
12
- gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
13
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
- gem.name = 'puffing-billy'
15
- gem.require_paths = ['lib']
16
- gem.version = Billy::VERSION
17
-
18
- gem.add_development_dependency 'rspec'
19
- gem.add_development_dependency 'thin'
20
- gem.add_development_dependency 'faraday', '>= 0.9.0'
21
- gem.add_development_dependency 'apparition'
22
- gem.add_development_dependency 'capybara'
23
- gem.add_development_dependency 'selenium-webdriver'
24
- gem.add_development_dependency 'rack'
25
- gem.add_development_dependency 'rake'
26
- gem.add_development_dependency 'guard'
27
- gem.add_development_dependency 'rb-inotify'
28
- gem.add_development_dependency 'pry'
29
- gem.add_development_dependency 'cucumber'
30
- gem.add_development_dependency 'watir', '~> 6.10.0'
31
- gem.add_development_dependency 'webdrivers'
32
- gem.add_runtime_dependency 'addressable', '~> 2.5'
33
- gem.add_runtime_dependency 'eventmachine', '~> 1.2'
34
- gem.add_runtime_dependency 'em-synchrony'
35
- gem.add_runtime_dependency 'em-http-request', '~> 1.1', '>= 1.1.0'
36
- gem.add_runtime_dependency 'eventmachine_httpserver'
37
- gem.add_runtime_dependency 'http_parser.rb', '~> 0.6.0'
38
- gem.add_runtime_dependency 'multi_json'
39
- end
@@ -1,23 +0,0 @@
1
- require 'spec_helper'
2
- require 'base64'
3
-
4
- # FIXME: Looks like Facebook API changed recently and this test fails consistently now -RS 2018-03-05
5
- xdescribe 'Facebook API example', type: :feature, js: true do
6
- before do
7
- proxy.stub('https://www.facebook.com:443/dialog/oauth').and_return(proc do |params, _, _|
8
- # mock a signed request from facebook. the JS api never verifies the
9
- # signature, so all it needs is the base64-encoded payload
10
- signed_request = "xxxxxxxxxx.#{Base64.encode64('{"user_id":"1234567"}')}"
11
- # redirect to the 'redirect_uri', with some extra crap in the query string
12
- { redirect_to: "#{params['redirect_uri'][0]}&access_token=foobar&expires_in=600&base_domain=localhost&https=1&signed_request=#{signed_request}" }
13
- end)
14
-
15
- proxy.stub('https://graph.facebook.com:443/me').and_return(jsonp: { name: 'Tester 1' })
16
- end
17
-
18
- it 'should show me as logged-in' do
19
- visit '/facebook_api.html'
20
- click_on 'Login'
21
- expect(page).to have_content 'Hi, Tester 1'
22
- end
23
- end