web-console 0.4.0 → 1.0.0

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

Potentially problematic release.


This version of web-console might be problematic. Click here for more details.

Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/README.markdown +33 -21
  3. data/app/assets/javascripts/web_console/console_sessions.js +12 -17
  4. data/app/controllers/web_console/console_sessions_controller.rb +1 -1
  5. data/app/models/web_console/console_session.rb +22 -6
  6. data/lib/assets/stylesheets/web_console.css +255 -0
  7. data/lib/web_console/colors.rb +3 -2
  8. data/lib/web_console/colors/monokai.rb +24 -0
  9. data/lib/web_console/engine.rb +0 -1
  10. data/lib/web_console/slave.rb +11 -2
  11. data/lib/web_console/version.rb +1 -1
  12. data/test/controllers/web_console/console_sessions_controller_test.rb +20 -0
  13. data/test/dummy/config/application.rb +2 -0
  14. data/test/dummy/db/test.sqlite3 +0 -0
  15. data/test/dummy/log/development.log +65978 -12068
  16. data/test/dummy/log/test.log +14235 -0
  17. data/test/dummy/tmp/cache/assets/development/sprockets/0280bb38c5058cc31c4fcd8c392a5ec4 +0 -0
  18. data/test/dummy/tmp/cache/assets/development/sprockets/{6ad7acc9a22fe2a67ec24a1fc866c20e → 26a3e1c38a6e60bc45d967d210a21fa6} +0 -0
  19. data/test/dummy/tmp/cache/assets/development/sprockets/{c649837df826fc310cb80f1adafd6b8d → 2a48be7daff14cf56911b263cbe017c7} +0 -0
  20. data/test/dummy/tmp/cache/assets/development/sprockets/{496864a905d53afd8e176f29500f96a8 → 305b55f5220092e63fde09b502d4bbaf} +0 -0
  21. data/test/dummy/tmp/cache/assets/development/sprockets/{17c571144b4e44da39bddb2d2c412414 → 4787d1478456f16e87b4b67453741c19} +0 -0
  22. data/test/dummy/tmp/cache/assets/development/sprockets/{8aa4c7aabff23c8089d41e9e54193483 → 508ab3c25833ea537a5e3fc90df33595} +0 -0
  23. data/test/dummy/tmp/cache/assets/development/sprockets/{e6d6b8bde546349764be7b44ffcf5807 → 55538a15d325a77cefc001df3fbeb5ab} +0 -0
  24. data/test/dummy/tmp/cache/assets/development/sprockets/{5ac98782fe3dfd0a766f75ce1801f0a0 → 5adcb7569cdd03204d650e285f19351f} +0 -0
  25. data/test/dummy/tmp/cache/assets/development/sprockets/{44117154e909436e7eeaf10cdb18d2b4 → 8524ba6a67aa1b4780df9d219ade9577} +0 -0
  26. data/test/dummy/tmp/cache/assets/development/sprockets/{d982412def520c434e2240eae6d29cf2 → ad8eea7f774b674c29708ca90952764f} +0 -0
  27. data/test/dummy/tmp/cache/assets/development/sprockets/{680381170dc160e358fc28076ea6886c → b0c3672502453a0959bb662e74f70adf} +0 -0
  28. data/test/dummy/tmp/cache/assets/development/sprockets/{7a50a9e605754e99783de95715b976b0 → b90d44fbc7256fb3b64328fd182391e9} +0 -0
  29. data/test/dummy/tmp/cache/assets/development/sprockets/{eb25265794d2f7afd1684779d84efdac → bbafe93cdad62ca10f0397f0cb7f75d5} +0 -0
  30. data/test/dummy/tmp/cache/assets/development/sprockets/ca9069924054cf28d5d39195f1ac0447 +0 -0
  31. data/test/dummy/tmp/cache/assets/development/sprockets/{2b96b037f3dfeccfe27113eb95b06ea1 → cdd2c435bd92a68003449e1caabff6e2} +0 -0
  32. data/test/dummy/tmp/cache/assets/development/sprockets/e1d89809967e81220dca66770c50aa67 +0 -0
  33. data/test/dummy/tmp/cache/assets/development/sprockets/{55b7b76605fdffe31d737d4ac1f1ef7b → e3d5cafc071e8f9a8efc88fddf721947} +0 -0
  34. data/test/dummy/tmp/cache/assets/development/sprockets/{36341e42f23669574fa1027d0958ff3e → eae513a04f7e3700df598fae5b457003} +0 -0
  35. data/test/dummy/tmp/cache/assets/development/sprockets/f48ecedb2c5b2b5e48e71338d5933e8d +0 -0
  36. data/test/dummy/tmp/cache/assets/development/sprockets/{d1f6e06bc2f112c4ec3a4c3f68351878 → f4a21ed9cebe2c83a9d988504dc6720b} +0 -0
  37. data/test/dummy/tmp/cache/assets/development/sprockets/{cb0065359d3b5b296f71d673f4b276e9 → f4d45273ff5b44879dab0a16805f4309} +0 -0
  38. data/test/dummy/tmp/cache/assets/test/sprockets/0280bb38c5058cc31c4fcd8c392a5ec4 +0 -0
  39. data/test/dummy/tmp/cache/assets/test/sprockets/26a3e1c38a6e60bc45d967d210a21fa6 +0 -0
  40. data/test/dummy/tmp/cache/assets/test/sprockets/2a48be7daff14cf56911b263cbe017c7 +0 -0
  41. data/test/dummy/tmp/cache/assets/test/sprockets/305b55f5220092e63fde09b502d4bbaf +0 -0
  42. data/test/dummy/tmp/cache/assets/test/sprockets/508ab3c25833ea537a5e3fc90df33595 +0 -0
  43. data/test/dummy/tmp/cache/assets/test/sprockets/55538a15d325a77cefc001df3fbeb5ab +0 -0
  44. data/test/dummy/tmp/cache/assets/test/sprockets/5adcb7569cdd03204d650e285f19351f +0 -0
  45. data/test/dummy/tmp/cache/assets/test/sprockets/b0c3672502453a0959bb662e74f70adf +0 -0
  46. data/test/dummy/tmp/cache/assets/test/sprockets/b90d44fbc7256fb3b64328fd182391e9 +0 -0
  47. data/test/dummy/tmp/cache/assets/test/sprockets/bbafe93cdad62ca10f0397f0cb7f75d5 +0 -0
  48. data/test/dummy/tmp/cache/assets/test/sprockets/ca9069924054cf28d5d39195f1ac0447 +0 -0
  49. data/test/dummy/tmp/cache/assets/test/sprockets/e1d89809967e81220dca66770c50aa67 +0 -0
  50. data/test/dummy/tmp/cache/assets/test/sprockets/e3d5cafc071e8f9a8efc88fddf721947 +0 -0
  51. data/test/dummy/tmp/cache/assets/test/sprockets/f48ecedb2c5b2b5e48e71338d5933e8d +0 -0
  52. data/test/dummy/tmp/cache/assets/test/sprockets/f4a21ed9cebe2c83a9d988504dc6720b +0 -0
  53. data/test/dummy/tmp/cache/assets/test/sprockets/f4d45273ff5b44879dab0a16805f4309 +0 -0
  54. data/test/models/console_session_test.rb +12 -6
  55. data/test/test_helper.rb +3 -0
  56. data/test/web_console/engine_test.rb +136 -0
  57. data/test/web_console/slave_test.rb +57 -39
  58. metadata +157 -119
  59. data/test/dummy/tmp/cache/assets/development/sprockets/6e4d5b32cc444226f6597198994ccd5e +0 -0
  60. data/test/dummy/tmp/cache/assets/development/sprockets/b2401118729720034b6f3eda0b4c5025 +0 -0
  61. data/test/dummy/tmp/cache/assets/development/sprockets/d6b85d8b0b5c569388b89e56e9f6fed7 +0 -0
  62. data/test/dummy/tmp/cache/assets/development/sprockets/df048a8b0897b9c04acdf59c8f95b18f +0 -0
  63. data/test/web_console_test.rb +0 -134
@@ -1,134 +0,0 @@
1
- require 'test_helper'
2
-
3
- class WebConsoleTest < ActiveSupport::TestCase
4
- test 'custom default_mount_path' do
5
- new_uninitialized_app do |app|
6
- app.config.web_console.default_mount_path = '/shell'
7
- app.initialize!
8
-
9
- assert app.routes.named_routes['web_console'].path.match('/shell')
10
- end
11
- end
12
-
13
- test 'disabling automounting' do
14
- new_uninitialized_app do |app|
15
- app.config.web_console.automount = false
16
- app.initialize!
17
-
18
- refute app.routes.named_routes['web_console']
19
- end
20
- end
21
-
22
- test 'blank commands are expanded to the rails console' do
23
- new_uninitialized_app do |app|
24
- app.config.web_console.command = ' '
25
- app.initialize!
26
-
27
- expected_path = Rails.root.join('bin/rails console').to_s
28
- assert_equal expected_path, app.config.web_console.command
29
- end
30
- end
31
-
32
- test 'present commands are not processed' do
33
- new_uninitialized_app do |app|
34
- app.config.web_console.command = '/bin/login'
35
- app.initialize!
36
-
37
- assert_equal '/bin/login', app.config.web_console.command
38
- end
39
- end
40
-
41
- test 'whitelisted ips are courced to IPAddr' do
42
- new_uninitialized_app do |app|
43
- app.config.web_console.whitelisted_ips = '127.0.0.1'
44
- app.initialize!
45
-
46
- assert_equal [ IPAddr.new('127.0.0.1') ], app.config.web_console.whitelisted_ips
47
- end
48
- end
49
-
50
- test 'whitelisted ips are normalized and unique IPAddr' do
51
- new_uninitialized_app do |app|
52
- app.config.web_console.whitelisted_ips = [ '127.0.0.1', '127.0.0.1', nil, '', ' ' ]
53
- app.initialize!
54
-
55
- assert_equal [ IPAddr.new('127.0.0.1') ], app.config.web_console.whitelisted_ips
56
- end
57
- end
58
-
59
- test 'whitelisted_ips.include? coerces to IPAddr' do
60
- new_uninitialized_app do |app|
61
- app.config.web_console.whitelisted_ips = '127.0.0.1'
62
- app.initialize!
63
-
64
- assert app.config.web_console.whitelisted_ips.include?('127.0.0.1')
65
- end
66
- end
67
-
68
- test 'whitelisted_ips.include? works with IPAddr' do
69
- new_uninitialized_app do |app|
70
- app.config.web_console.whitelisted_ips = '127.0.0.1'
71
- app.initialize!
72
-
73
- assert app.config.web_console.whitelisted_ips.include?(IPAddr.new('127.0.0.1'))
74
- end
75
- end
76
-
77
- test 'whitelist whole networks' do
78
- new_uninitialized_app do |app|
79
- app.config.web_console.whitelisted_ips = '172.16.0.0/12'
80
- app.initialize!
81
-
82
- 1.upto(255).each do |n|
83
- assert_includes app.config.web_console.whitelisted_ips, "172.16.0.#{n}"
84
- end
85
- end
86
- end
87
-
88
- test 'whitelist multiple networks' do
89
- new_uninitialized_app do |app|
90
- app.config.web_console.whitelisted_ips = %w( 172.16.0.0/12 192.168.0.0/16 )
91
- app.initialize!
92
-
93
- 1.upto(255).each do |n|
94
- assert_includes app.config.web_console.whitelisted_ips, "172.16.0.#{n}"
95
- assert_includes app.config.web_console.whitelisted_ips, "192.168.0.#{n}"
96
- end
97
- end
98
- end
99
-
100
- private
101
-
102
- def new_uninitialized_app(root = File.expand_path('../dummy', __FILE__))
103
- skip if Rails::VERSION::MAJOR == 3
104
-
105
- old_app = Rails.application
106
-
107
- FileUtils.mkdir_p(root)
108
- Dir.chdir(root) do
109
- Rails.application = nil
110
-
111
- app = Class.new(Rails::Application)
112
- app.config.eager_load = false
113
- app.config.time_zone = 'UTC'
114
- app.config.middleware ||= Rails::Configuration::MiddlewareStackProxy.new
115
- app.config.active_support.deprecation = :notify
116
-
117
- yield app
118
- end
119
- ensure
120
- Rails.application = old_app
121
- end
122
-
123
- def teardown_fixtures(*)
124
- super
125
- rescue
126
- # This is nasty hack to prevent a connection to the database in JRuby's
127
- # activerecord-jdbcsqlite3-adapter. We don't really require a database
128
- # connection, for the tests to run.
129
- #
130
- # The sad thing is that I couldn't figure out why does it only happens on
131
- # activerecord-jdbcsqlite3-adapter and how to actually prevent it, rather
132
- # than work-around it.
133
- end
134
- end