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.
- checksums.yaml +4 -4
- data/README.markdown +33 -21
- data/app/assets/javascripts/web_console/console_sessions.js +12 -17
- data/app/controllers/web_console/console_sessions_controller.rb +1 -1
- data/app/models/web_console/console_session.rb +22 -6
- data/lib/assets/stylesheets/web_console.css +255 -0
- data/lib/web_console/colors.rb +3 -2
- data/lib/web_console/colors/monokai.rb +24 -0
- data/lib/web_console/engine.rb +0 -1
- data/lib/web_console/slave.rb +11 -2
- data/lib/web_console/version.rb +1 -1
- data/test/controllers/web_console/console_sessions_controller_test.rb +20 -0
- data/test/dummy/config/application.rb +2 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +65978 -12068
- data/test/dummy/log/test.log +14235 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/0280bb38c5058cc31c4fcd8c392a5ec4 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{6ad7acc9a22fe2a67ec24a1fc866c20e → 26a3e1c38a6e60bc45d967d210a21fa6} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{c649837df826fc310cb80f1adafd6b8d → 2a48be7daff14cf56911b263cbe017c7} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{496864a905d53afd8e176f29500f96a8 → 305b55f5220092e63fde09b502d4bbaf} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{17c571144b4e44da39bddb2d2c412414 → 4787d1478456f16e87b4b67453741c19} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{8aa4c7aabff23c8089d41e9e54193483 → 508ab3c25833ea537a5e3fc90df33595} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{e6d6b8bde546349764be7b44ffcf5807 → 55538a15d325a77cefc001df3fbeb5ab} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{5ac98782fe3dfd0a766f75ce1801f0a0 → 5adcb7569cdd03204d650e285f19351f} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{44117154e909436e7eeaf10cdb18d2b4 → 8524ba6a67aa1b4780df9d219ade9577} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{d982412def520c434e2240eae6d29cf2 → ad8eea7f774b674c29708ca90952764f} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{680381170dc160e358fc28076ea6886c → b0c3672502453a0959bb662e74f70adf} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{7a50a9e605754e99783de95715b976b0 → b90d44fbc7256fb3b64328fd182391e9} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{eb25265794d2f7afd1684779d84efdac → bbafe93cdad62ca10f0397f0cb7f75d5} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ca9069924054cf28d5d39195f1ac0447 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{2b96b037f3dfeccfe27113eb95b06ea1 → cdd2c435bd92a68003449e1caabff6e2} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e1d89809967e81220dca66770c50aa67 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{55b7b76605fdffe31d737d4ac1f1ef7b → e3d5cafc071e8f9a8efc88fddf721947} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{36341e42f23669574fa1027d0958ff3e → eae513a04f7e3700df598fae5b457003} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f48ecedb2c5b2b5e48e71338d5933e8d +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{d1f6e06bc2f112c4ec3a4c3f68351878 → f4a21ed9cebe2c83a9d988504dc6720b} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/{cb0065359d3b5b296f71d673f4b276e9 → f4d45273ff5b44879dab0a16805f4309} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/0280bb38c5058cc31c4fcd8c392a5ec4 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/26a3e1c38a6e60bc45d967d210a21fa6 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/2a48be7daff14cf56911b263cbe017c7 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/305b55f5220092e63fde09b502d4bbaf +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/508ab3c25833ea537a5e3fc90df33595 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/55538a15d325a77cefc001df3fbeb5ab +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/5adcb7569cdd03204d650e285f19351f +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/b0c3672502453a0959bb662e74f70adf +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/b90d44fbc7256fb3b64328fd182391e9 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/bbafe93cdad62ca10f0397f0cb7f75d5 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/ca9069924054cf28d5d39195f1ac0447 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/e1d89809967e81220dca66770c50aa67 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/e3d5cafc071e8f9a8efc88fddf721947 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/f48ecedb2c5b2b5e48e71338d5933e8d +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/f4a21ed9cebe2c83a9d988504dc6720b +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/f4d45273ff5b44879dab0a16805f4309 +0 -0
- data/test/models/console_session_test.rb +12 -6
- data/test/test_helper.rb +3 -0
- data/test/web_console/engine_test.rb +136 -0
- data/test/web_console/slave_test.rb +57 -39
- metadata +157 -119
- data/test/dummy/tmp/cache/assets/development/sprockets/6e4d5b32cc444226f6597198994ccd5e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/b2401118729720034b6f3eda0b4c5025 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d6b85d8b0b5c569388b89e56e9f6fed7 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/df048a8b0897b9c04acdf59c8f95b18f +0 -0
- data/test/web_console_test.rb +0 -134
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/test/web_console_test.rb
DELETED
@@ -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
|