diagnostics 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -4
- data/.specification +0 -0
- data/Gemfile.lock +39 -0
- data/LICENSE +20 -0
- data/README.md +7 -0
- data/app/controllers/diagnostics_application_controller.rb +12 -0
- data/app/controllers/diagnostics_controller.rb +6 -0
- data/app/controllers/statuses_controller.rb +20 -0
- data/app/views/diagnostics/_check.html.erb +1 -0
- data/app/views/diagnostics/index.html.erb +22 -0
- data/app/views/layouts/diagnostics.html.erb +114 -0
- data/app/views/statuses/show.html.erb +15 -0
- data/config/routes.rb +6 -0
- data/diagnostics.gemspec +2 -2
- data/features/diagnostic_checks.feature +167 -0
- data/features/step_definitions/aruba.rb +5 -0
- data/features/support/env.rb +2 -0
- data/lib/diagnostics/check.rb +66 -0
- data/lib/diagnostics/data/attribute.rb +15 -0
- data/lib/diagnostics/data/elements.rb +40 -0
- data/lib/diagnostics/data/list.rb +15 -0
- data/lib/diagnostics/data/table.rb +47 -0
- data/lib/diagnostics/data/text.rb +15 -0
- data/lib/diagnostics/data_group.rb +37 -0
- data/lib/diagnostics/methods.rb +46 -0
- data/lib/diagnostics/version.rb +1 -1
- data/rails/init.rb +1 -0
- data/spec/diagnostics/check_spec.rb +78 -0
- data/spec/diagnostics/data/attribute_spec.rb +22 -0
- data/spec/diagnostics/data/list_spec.rb +22 -0
- data/spec/diagnostics/data/table_spec.rb +63 -0
- data/spec/diagnostics/data/text_spec.rb +22 -0
- data/spec/diagnostics/data_group_spec.rb +177 -0
- data/spec/diagnostics/methods_spec.rb +128 -0
- data/spec/diagnostics_spec.rb +11 -0
- data/spec/spec_helper.rb +13 -0
- data/spec_rails/rails2/Gemfile +13 -0
- data/spec_rails/rails2/Gemfile.lock +91 -0
- data/spec_rails/rails2/Rakefile +13 -0
- data/spec_rails/rails2/app_root/README +243 -0
- data/spec_rails/rails2/app_root/Rakefile +10 -0
- data/spec_rails/rails2/app_root/app/controllers/application_controller.rb +10 -0
- data/spec_rails/rails2/app_root/app/helpers/application_helper.rb +3 -0
- data/spec_rails/rails2/app_root/config/boot.rb +114 -0
- data/spec_rails/rails2/app_root/config/database.yml +25 -0
- data/spec_rails/rails2/app_root/config/environment.rb +45 -0
- data/spec_rails/rails2/app_root/config/environments/cucumber.rb +29 -0
- data/spec_rails/rails2/app_root/config/environments/development.rb +17 -0
- data/spec_rails/rails2/app_root/config/environments/production.rb +28 -0
- data/spec_rails/rails2/app_root/config/environments/test.rb +28 -0
- data/spec_rails/rails2/app_root/config/initializers/backtrace_silencers.rb +7 -0
- data/spec_rails/rails2/app_root/config/initializers/cookie_verification_secret.rb +7 -0
- data/spec_rails/rails2/app_root/config/initializers/inflections.rb +10 -0
- data/spec_rails/rails2/app_root/config/initializers/load_diagnostics.rb +2 -0
- data/spec_rails/rails2/app_root/config/initializers/mime_types.rb +5 -0
- data/spec_rails/rails2/app_root/config/initializers/new_rails_defaults.rb +21 -0
- data/spec_rails/rails2/app_root/config/initializers/session_store.rb +15 -0
- data/spec_rails/rails2/app_root/config/locales/en.yml +5 -0
- data/spec_rails/rails2/app_root/config/routes.rb +43 -0
- data/spec_rails/rails2/app_root/db/seeds.rb +7 -0
- data/spec_rails/rails2/app_root/doc/README_FOR_APP +2 -0
- data/spec_rails/rails2/app_root/lib/diagnostics/mysql_check.rb +18 -0
- data/spec_rails/rails2/app_root/lib/diagnostics/server_check.rb +4 -0
- data/spec_rails/rails2/app_root/lib/tasks/cucumber.rake +53 -0
- data/spec_rails/rails2/app_root/public/404.html +30 -0
- data/spec_rails/rails2/app_root/public/422.html +30 -0
- data/spec_rails/rails2/app_root/public/500.html +30 -0
- data/spec_rails/rails2/app_root/public/favicon.ico +0 -0
- data/spec_rails/rails2/app_root/public/images/rails.png +0 -0
- data/spec_rails/rails2/app_root/public/index.html +275 -0
- data/spec_rails/rails2/app_root/public/javascripts/application.js +2 -0
- data/spec_rails/rails2/app_root/public/javascripts/controls.js +963 -0
- data/spec_rails/rails2/app_root/public/javascripts/dragdrop.js +973 -0
- data/spec_rails/rails2/app_root/public/javascripts/effects.js +1128 -0
- data/spec_rails/rails2/app_root/public/javascripts/prototype.js +4320 -0
- data/spec_rails/rails2/app_root/public/robots.txt +5 -0
- data/spec_rails/rails2/app_root/script/about +4 -0
- data/spec_rails/rails2/app_root/script/console +3 -0
- data/spec_rails/rails2/app_root/script/cucumber +10 -0
- data/spec_rails/rails2/app_root/script/dbconsole +3 -0
- data/spec_rails/rails2/app_root/script/destroy +3 -0
- data/spec_rails/rails2/app_root/script/generate +3 -0
- data/spec_rails/rails2/app_root/script/performance/benchmarker +3 -0
- data/spec_rails/rails2/app_root/script/performance/profiler +3 -0
- data/spec_rails/rails2/app_root/script/plugin +3 -0
- data/spec_rails/rails2/app_root/script/runner +3 -0
- data/spec_rails/rails2/app_root/script/server +3 -0
- data/spec_rails/rails2/app_root/test/performance/browsing_test.rb +9 -0
- data/spec_rails/rails2/app_root/test/test_helper.rb +38 -0
- data/spec_rails/rails2/controllers/diagnostics_controller_spec.rb +12 -0
- data/spec_rails/rails2/controllers/statuses_controller_spec.rb +34 -0
- data/spec_rails/rails2/features/diagnostics_page.feature +34 -0
- data/spec_rails/rails2/features/status_page.feature +43 -0
- data/spec_rails/rails2/features/step_definitions/diagnostic_steps.rb +39 -0
- data/spec_rails/rails2/features/step_definitions/web_steps.rb +219 -0
- data/spec_rails/rails2/features/support/env.rb +61 -0
- data/spec_rails/rails2/features/support/hooks.rb +3 -0
- data/spec_rails/rails2/features/support/paths.rb +36 -0
- data/spec_rails/rails2/spec.opts +1 -0
- data/spec_rails/rails2/spec_helper.rb +4 -0
- data/spec_rails/rails3/Gemfile +0 -0
- metadata +119 -7
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Diagnostics
|
4
|
+
module Data
|
5
|
+
describe Text do
|
6
|
+
let(:text) { described_class.new('foo') }
|
7
|
+
|
8
|
+
describe '#plain' do
|
9
|
+
specify do
|
10
|
+
text.plain.should eq('foo')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '#html' do
|
15
|
+
specify do
|
16
|
+
text.html.should eq('<p>foo</p>')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,177 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Diagnostics
|
4
|
+
describe DataGroup do
|
5
|
+
|
6
|
+
describe '#attributes' do
|
7
|
+
context 'with no attributes set' do
|
8
|
+
it 'returns an empty array' do
|
9
|
+
subject.attributes.should eq([])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'given :plain format' do
|
14
|
+
let(:data_group) { create_data_group }
|
15
|
+
|
16
|
+
specify do
|
17
|
+
data_group.attributes(:plain).should eq(['a: 1', 'b: 2'])
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'given :html format' do
|
22
|
+
let(:data_group) { create_data_group }
|
23
|
+
|
24
|
+
specify do
|
25
|
+
data_group.attributes(:html).should eq(
|
26
|
+
['<strong>a:</strong> 1', '<strong>b:</strong> 2']
|
27
|
+
)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def create_data_group
|
32
|
+
data_group = subject
|
33
|
+
data_group['a'] = 1
|
34
|
+
data_group['b'] = 2
|
35
|
+
data_group
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '#lists' do
|
40
|
+
context 'with no lists added' do
|
41
|
+
it 'returns an empty array' do
|
42
|
+
subject.lists.should eq([])
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'given :plain format' do
|
47
|
+
let(:data_group) { create_data_group }
|
48
|
+
|
49
|
+
specify do
|
50
|
+
data_group.lists(:plain).should eq(
|
51
|
+
["a\nb\nc", "1\n2\n3"]
|
52
|
+
)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context 'given :html format' do
|
57
|
+
let(:data_group) { create_data_group }
|
58
|
+
|
59
|
+
specify do
|
60
|
+
data_group.lists(:html).should eq(
|
61
|
+
['a<br />b<br />c', '1<br />2<br />3']
|
62
|
+
)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def create_data_group
|
67
|
+
data_group = subject
|
68
|
+
data_group << ['a', 'b', 'c']
|
69
|
+
data_group << [1, 2, 3]
|
70
|
+
data_group
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe '#texts' do
|
75
|
+
context 'with no texts added' do
|
76
|
+
it 'returns an empty array' do
|
77
|
+
subject.texts.should eq([])
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context 'given :plain format' do
|
82
|
+
let(:data_group) { create_data_group }
|
83
|
+
|
84
|
+
specify do
|
85
|
+
data_group.texts(:plain).should eq(['a', 'b'])
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
context 'given :html format' do
|
90
|
+
let(:data_group) { create_data_group }
|
91
|
+
|
92
|
+
specify do
|
93
|
+
data_group.texts(:html).should eq(
|
94
|
+
['<p>a</p>', '<p>b</p>']
|
95
|
+
)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def create_data_group
|
100
|
+
data_group = subject
|
101
|
+
data_group << 'a'
|
102
|
+
data_group << 'b'
|
103
|
+
data_group
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe '#tables' do
|
108
|
+
context 'with no texts added' do
|
109
|
+
it 'returns an empty array' do
|
110
|
+
subject.tables.should eq([])
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
context 'given :html format' do
|
115
|
+
let(:data_group) { create_data_group }
|
116
|
+
|
117
|
+
specify do
|
118
|
+
data_group.tables(:html).should eq(
|
119
|
+
[
|
120
|
+
'<table>' \
|
121
|
+
'<tr>' \
|
122
|
+
'<th>heading 1</th>' \
|
123
|
+
'<th>heading 2</th>' \
|
124
|
+
'</tr>' \
|
125
|
+
'<tr>' \
|
126
|
+
'<td>1</td>' \
|
127
|
+
'<td>3</td>' \
|
128
|
+
'</tr>' \
|
129
|
+
'<tr>' \
|
130
|
+
'<td>2</td>' \
|
131
|
+
'<td></td>' \
|
132
|
+
'</tr>' \
|
133
|
+
'</table>' \
|
134
|
+
]
|
135
|
+
)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
def create_data_group
|
140
|
+
data_group = subject
|
141
|
+
data_group << { 'heading 1' => [1,2],
|
142
|
+
'heading 2' => [3, nil] }
|
143
|
+
data_group
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
describe '#[]=' do
|
148
|
+
it 'adds an instance of Data::Attribute' do
|
149
|
+
data_group = subject
|
150
|
+
data_group['key'] = 'value'
|
151
|
+
data_group.should have(1).attributes
|
152
|
+
data_group.attributes[0].should be_an_instance_of(Data::Attribute)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
describe '#<<' do
|
157
|
+
context 'given an array' do
|
158
|
+
it 'adds an instance of Data::List' do
|
159
|
+
data_group = subject
|
160
|
+
data_group << [1,2,3]
|
161
|
+
data_group.should have(1).lists
|
162
|
+
data_group.lists[0].should be_an_instance_of(Data::List)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
context 'given a string' do
|
167
|
+
it 'adds an instance of Data::Text' do
|
168
|
+
data_group = subject
|
169
|
+
data_group << "a string"
|
170
|
+
data_group.should have(1).texts
|
171
|
+
data_group.texts[0].should be_an_instance_of(Data::Text)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
end
|
177
|
+
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe '#diagnostic_checks' do
|
4
|
+
it 'defaults to an empty array' do
|
5
|
+
diagnostic_checks.should eq([])
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '#diagnostic_check' do
|
10
|
+
|
11
|
+
context 'with block given' do
|
12
|
+
it 'adds a check' do
|
13
|
+
diagnostic_check(:foo) { }
|
14
|
+
diagnostic_checks.should have(1).check
|
15
|
+
diagnostic_checks.first.name.should eq(:foo)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'without block given' do
|
20
|
+
it 'finds the check' do
|
21
|
+
check = diagnostic_check(:foo) { }
|
22
|
+
diagnostic_check(:foo).should eq(check)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#diagnostic_message' do
|
29
|
+
|
30
|
+
context 'with diagnostic_status returning :passed' do
|
31
|
+
before do
|
32
|
+
should_receive(:diagnostic_status).and_return(:passed)
|
33
|
+
end
|
34
|
+
|
35
|
+
specify do
|
36
|
+
diagnostic_message.should eq('All Systems Operational')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context 'with diagnostic_status returning :warning' do
|
41
|
+
before do
|
42
|
+
should_receive(:diagnostic_status).and_return(:warning)
|
43
|
+
end
|
44
|
+
|
45
|
+
specify do
|
46
|
+
diagnostic_message.should eq('Experiencing Issues')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'with diagnostic_status returning :failed' do
|
51
|
+
before do
|
52
|
+
should_receive(:diagnostic_status).and_return(:failed)
|
53
|
+
end
|
54
|
+
|
55
|
+
specify do
|
56
|
+
diagnostic_message.should eq('System Failure')
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'with diagnostic_status returning :none' do
|
61
|
+
before do
|
62
|
+
should_receive(:diagnostic_status).and_return(:none)
|
63
|
+
end
|
64
|
+
|
65
|
+
specify do
|
66
|
+
diagnostic_message.should eq('No Diagnostic Checks Run')
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
describe '#diagnostic_status' do
|
73
|
+
|
74
|
+
context 'with all checks passing' do
|
75
|
+
before do
|
76
|
+
diagnostic_check(:foo) do |c|
|
77
|
+
c.passed { true }
|
78
|
+
end
|
79
|
+
diagnostic_check(:bar) do |c|
|
80
|
+
c.passed { true }
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'returns :passed' do
|
85
|
+
diagnostic_status.should eq(:passed)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
context 'with a check that failed' do
|
90
|
+
before do
|
91
|
+
diagnostic_check(:foo) do |c|
|
92
|
+
c.passed { true }
|
93
|
+
end
|
94
|
+
diagnostic_check(:zoo) do |c|
|
95
|
+
c.warning { true }
|
96
|
+
end
|
97
|
+
diagnostic_check(:bar) do |c|
|
98
|
+
c.failed { true }
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'returns :failed' do
|
103
|
+
diagnostic_status.should eq(:failed)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
context 'with a warning check' do
|
108
|
+
before do
|
109
|
+
diagnostic_check(:foo) do |c|
|
110
|
+
c.passed { true }
|
111
|
+
end
|
112
|
+
diagnostic_check(:bar) do |c|
|
113
|
+
c.warning { true }
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'returns :warning' do
|
118
|
+
diagnostic_status.should eq(:warning)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
context 'with no checks' do
|
123
|
+
it 'returns :none' do
|
124
|
+
diagnostic_status.should eq(:none)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ../..
|
3
|
+
specs:
|
4
|
+
diagnostics (0.0.1)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
actionmailer (2.3.10)
|
10
|
+
actionpack (= 2.3.10)
|
11
|
+
actionpack (2.3.10)
|
12
|
+
activesupport (= 2.3.10)
|
13
|
+
rack (~> 1.1.0)
|
14
|
+
activerecord (2.3.10)
|
15
|
+
activesupport (= 2.3.10)
|
16
|
+
activeresource (2.3.10)
|
17
|
+
activesupport (= 2.3.10)
|
18
|
+
activesupport (2.3.10)
|
19
|
+
builder (3.0.0)
|
20
|
+
capybara (0.4.0)
|
21
|
+
celerity (>= 0.7.9)
|
22
|
+
culerity (>= 0.2.4)
|
23
|
+
mime-types (>= 1.16)
|
24
|
+
nokogiri (>= 1.3.3)
|
25
|
+
rack (>= 1.0.0)
|
26
|
+
rack-test (>= 0.5.4)
|
27
|
+
selenium-webdriver (>= 0.0.27)
|
28
|
+
xpath (~> 0.1.2)
|
29
|
+
celerity (0.8.7)
|
30
|
+
childprocess (0.1.6)
|
31
|
+
ffi (~> 0.6.3)
|
32
|
+
configuration (1.2.0)
|
33
|
+
cucumber (0.10.0)
|
34
|
+
builder (>= 2.1.2)
|
35
|
+
diff-lcs (~> 1.1.2)
|
36
|
+
gherkin (~> 2.3.2)
|
37
|
+
json (~> 1.4.6)
|
38
|
+
term-ansicolor (~> 1.0.5)
|
39
|
+
cucumber-rails (0.3.2)
|
40
|
+
cucumber (>= 0.8.0)
|
41
|
+
culerity (0.2.14)
|
42
|
+
database_cleaner (0.6.0)
|
43
|
+
diff-lcs (1.1.2)
|
44
|
+
ffi (0.6.3)
|
45
|
+
rake (>= 0.8.7)
|
46
|
+
gherkin (2.3.3)
|
47
|
+
json (~> 1.4.6)
|
48
|
+
json (1.4.6)
|
49
|
+
json_pure (1.4.6)
|
50
|
+
launchy (0.3.7)
|
51
|
+
configuration (>= 0.0.5)
|
52
|
+
rake (>= 0.8.1)
|
53
|
+
mime-types (1.16)
|
54
|
+
nokogiri (1.4.4)
|
55
|
+
rack (1.1.0)
|
56
|
+
rack-test (0.5.7)
|
57
|
+
rack (>= 1.0)
|
58
|
+
rails (2.3.10)
|
59
|
+
actionmailer (= 2.3.10)
|
60
|
+
actionpack (= 2.3.10)
|
61
|
+
activerecord (= 2.3.10)
|
62
|
+
activeresource (= 2.3.10)
|
63
|
+
activesupport (= 2.3.10)
|
64
|
+
rake (>= 0.8.3)
|
65
|
+
rake (0.8.7)
|
66
|
+
rspec (1.3.1)
|
67
|
+
rspec-rails (1.3.3)
|
68
|
+
rack (>= 1.0.0)
|
69
|
+
rspec (= 1.3.1)
|
70
|
+
rubyzip (0.9.4)
|
71
|
+
selenium-webdriver (0.1.2)
|
72
|
+
childprocess (~> 0.1.5)
|
73
|
+
ffi (~> 0.6.3)
|
74
|
+
json_pure
|
75
|
+
rubyzip
|
76
|
+
term-ansicolor (1.0.5)
|
77
|
+
xpath (0.1.3)
|
78
|
+
nokogiri (~> 1.3)
|
79
|
+
|
80
|
+
PLATFORMS
|
81
|
+
ruby
|
82
|
+
|
83
|
+
DEPENDENCIES
|
84
|
+
capybara
|
85
|
+
cucumber-rails
|
86
|
+
database_cleaner
|
87
|
+
diagnostics!
|
88
|
+
launchy
|
89
|
+
rails (= 2.3.10)
|
90
|
+
rspec (= 1.3.1)
|
91
|
+
rspec-rails (= 1.3.3)
|