ominous 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/README.rdoc +97 -0
- data/Rakefile +40 -0
- data/app/assets/javascripts/ominous/application.js +15 -0
- data/app/assets/javascripts/ominous/warnings.js +33 -0
- data/app/assets/stylesheets/ominous/_ominous_colours.scss +4 -0
- data/app/assets/stylesheets/ominous/application.scss +13 -0
- data/app/assets/stylesheets/ominous/warnings.scss +41 -0
- data/app/controllers/ominous/application_controller.rb +16 -0
- data/app/controllers/ominous/warnings_controller.rb +15 -0
- data/app/helpers/ominous/application_helper.rb +39 -0
- data/app/helpers/ominous/warnings_helper.rb +29 -0
- data/app/models/ominous/closer.rb +19 -0
- data/app/models/ominous/warning.rb +74 -0
- data/app/models/ominous/warning_closer.rb +11 -0
- data/app/views/layouts/ominous/application.html.erb +14 -0
- data/app/views/ominous/warnings/_list.html.erb +20 -0
- data/config/locales/en.yml +1 -0
- data/config/routes.rb +8 -0
- data/db/migrate/20121206144249_create_ominous_warnings.rb +8 -0
- data/db/migrate/20121206145743_create_ominous_warning_closers.rb +10 -0
- data/db/migrate/20121206153254_create_ominous_closers.rb +11 -0
- data/lib/ominous/engine.rb +14 -0
- data/lib/ominous/version.rb +3 -0
- data/lib/ominous.rb +4 -0
- data/lib/tasks/ominous_tasks.rake +4 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +16 -0
- data/test/dummy/app/assets/javascripts/things.js +2 -0
- data/test/dummy/app/assets/stylesheets/application.scss +14 -0
- data/test/dummy/app/assets/stylesheets/scaffold.scss +56 -0
- data/test/dummy/app/assets/stylesheets/things.scss +4 -0
- data/test/dummy/app/controllers/application_controller.rb +4 -0
- data/test/dummy/app/controllers/things_controller.rb +54 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/helpers/things_helper.rb +2 -0
- data/test/dummy/app/models/thing.rb +5 -0
- data/test/dummy/app/views/layouts/application.html.erb +15 -0
- data/test/dummy/app/views/things/_form.html.erb +27 -0
- data/test/dummy/app/views/things/edit.html.erb +6 -0
- data/test/dummy/app/views/things/index.html.erb +23 -0
- data/test/dummy/app/views/things/new.html.erb +5 -0
- data/test/dummy/app/views/things/show.html.erb +10 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +18 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +20 -0
- data/test/dummy/config/routes.rb +6 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/migrate/20121207090710_create_things.rb +9 -0
- data/test/dummy/db/schema.rb +46 -0
- data/test/dummy/db/seeds/ominous/closers.yml +11 -0
- data/test/dummy/db/seeds/ominous/warnings.yml +1 -0
- data/test/dummy/db/seeds.rb +11 -0
- data/test/dummy/log/development.log +6329 -0
- data/test/dummy/log/test.log +16544 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/fixtures/things.yml +9 -0
- data/test/dummy/test/functional/things_controller_test.rb +98 -0
- data/test/dummy/test/unit/helpers/things_helper_test.rb +4 -0
- data/test/dummy/test/unit/thing_test.rb +7 -0
- data/test/dummy/tmp/cache/assets/C8C/B80/sprockets%2F371bf96e99717688ed7313a0c53f4212 +0 -0
- data/test/dummy/tmp/cache/assets/CB1/FD0/sprockets%2F6e1bd95023705b5529e7ccc754a02867 +0 -0
- data/test/dummy/tmp/cache/assets/CC9/A60/sprockets%2F07383698788b2e4738d47ae3ec6a1d87 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/D80/sprockets%2Fc021b5f59c2af065ff29a632752434f2 +0 -0
- data/test/dummy/tmp/cache/assets/CDA/7C0/sprockets%2F12b62b18784b4353d97f6a97a41f0ad0 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/310/sprockets%2Ffcc31591d15ae084c418fc172660b956 +0 -0
- data/test/dummy/tmp/cache/assets/CF0/1D0/sprockets%2F6fc757c2c8329244ca95d6909865bbc2 +0 -0
- data/test/dummy/tmp/cache/assets/CFF/E00/sprockets%2F352bab412d75fa19d0a07504553b59df +0 -0
- data/test/dummy/tmp/cache/assets/D06/CE0/sprockets%2F41d74669fa9b15be92441ba007ab0c68 +0 -0
- data/test/dummy/tmp/cache/assets/D2B/540/sprockets%2Fc83f54ae55237ceb746bbb53c00b1142 +0 -0
- data/test/dummy/tmp/cache/assets/D2C/6D0/sprockets%2F3d403240cf0f43b784f29abbcb44f206 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D47/090/sprockets%2F3f61bf7b226774e61d49a5c2bf4ba788 +0 -0
- data/test/dummy/tmp/cache/assets/D49/8D0/sprockets%2F92613a75279536c4bcf4f3ba6cfde494 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D55/D30/sprockets%2F7736f39574ccd9ee349df6370cacc753 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D63/460/sprockets%2Fb9c8c98e6433f883fef1c54e67727ae9 +0 -0
- data/test/dummy/tmp/cache/assets/D6A/BF0/sprockets%2F762d06ba45dbecea1ec4f91d06449184 +0 -0
- data/test/dummy/tmp/cache/assets/D6B/810/sprockets%2Fb86f0cb0c0c0e267d26cf93fa606b578 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/E30/sprockets%2F22dcb449e5cb7993f426a6f2ba336b2d +0 -0
- data/test/dummy/tmp/cache/assets/D70/F20/sprockets%2F1769eda3bb9755fed833c4ba761231dc +0 -0
- data/test/dummy/tmp/cache/assets/D77/D00/sprockets%2F4d1e5a8a96bd3c395214fd8ca879bf41 +0 -0
- data/test/dummy/tmp/cache/assets/D96/950/sprockets%2F5eee98198ef9d6273cdca638b9865fa8 +0 -0
- data/test/dummy/tmp/cache/assets/DA5/F70/sprockets%2F859ce38bab39b76b3dfcd28026aa8f62 +0 -0
- data/test/dummy/tmp/cache/assets/DAB/9C0/sprockets%2F8cadb8398e03f9730da11f8e7c9dc73b +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DF4/C60/sprockets%2F9a20e4568aca578053dddb4e4aca0def +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/fixtures/ominous/closers.yml +10 -0
- data/test/fixtures/ominous/warning_closers.yml +15 -0
- data/test/fixtures/ominous/warnings.yml +8 -0
- data/test/fixtures/things.yml +11 -0
- data/test/functional/ominous/warnings_controller_test.rb +22 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/ominous_test.rb +7 -0
- data/test/test_helper.rb +19 -0
- data/test/unit/helpers/ominous/warnings_helper_test.rb +6 -0
- data/test/unit/ominous/closer_test.rb +9 -0
- data/test/unit/ominous/warning_closer_test.rb +9 -0
- data/test/unit/ominous/warning_test.rb +37 -0
- metadata +352 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>The page you were looking for doesn't exist (404)</title>
|
5
|
+
<style type="text/css">
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
7
|
+
div.dialog {
|
8
|
+
width: 25em;
|
9
|
+
padding: 0 4em;
|
10
|
+
margin: 4em auto 0 auto;
|
11
|
+
border: 1px solid #ccc;
|
12
|
+
border-right-color: #999;
|
13
|
+
border-bottom-color: #999;
|
14
|
+
}
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
16
|
+
</style>
|
17
|
+
</head>
|
18
|
+
|
19
|
+
<body>
|
20
|
+
<!-- This file lives in public/404.html -->
|
21
|
+
<div class="dialog">
|
22
|
+
<h1>The page you were looking for doesn't exist.</h1>
|
23
|
+
<p>You may have mistyped the address or the page may have moved.</p>
|
24
|
+
</div>
|
25
|
+
</body>
|
26
|
+
</html>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>The change you wanted was rejected (422)</title>
|
5
|
+
<style type="text/css">
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
7
|
+
div.dialog {
|
8
|
+
width: 25em;
|
9
|
+
padding: 0 4em;
|
10
|
+
margin: 4em auto 0 auto;
|
11
|
+
border: 1px solid #ccc;
|
12
|
+
border-right-color: #999;
|
13
|
+
border-bottom-color: #999;
|
14
|
+
}
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
16
|
+
</style>
|
17
|
+
</head>
|
18
|
+
|
19
|
+
<body>
|
20
|
+
<!-- This file lives in public/422.html -->
|
21
|
+
<div class="dialog">
|
22
|
+
<h1>The change you wanted was rejected.</h1>
|
23
|
+
<p>Maybe you tried to change something you didn't have access to.</p>
|
24
|
+
</div>
|
25
|
+
</body>
|
26
|
+
</html>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>We're sorry, but something went wrong (500)</title>
|
5
|
+
<style type="text/css">
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
7
|
+
div.dialog {
|
8
|
+
width: 25em;
|
9
|
+
padding: 0 4em;
|
10
|
+
margin: 4em auto 0 auto;
|
11
|
+
border: 1px solid #ccc;
|
12
|
+
border-right-color: #999;
|
13
|
+
border-bottom-color: #999;
|
14
|
+
}
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
16
|
+
</style>
|
17
|
+
</head>
|
18
|
+
|
19
|
+
<body>
|
20
|
+
<!-- This file lives in public/500.html -->
|
21
|
+
<div class="dialog">
|
22
|
+
<h1>We're sorry, but something went wrong.</h1>
|
23
|
+
</div>
|
24
|
+
</body>
|
25
|
+
</html>
|
File without changes
|
@@ -0,0 +1,6 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
3
|
+
|
4
|
+
APP_PATH = File.expand_path('../../config/application', __FILE__)
|
5
|
+
require File.expand_path('../../config/boot', __FILE__)
|
6
|
+
require 'rails/commands'
|
@@ -0,0 +1,98 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ThingsControllerTest < ActionController::TestCase
|
4
|
+
def setup
|
5
|
+
@thing = Thing.find(1)
|
6
|
+
@thing_with_warning = Thing.find(2)
|
7
|
+
@warning = Ominous::Warning.find(1)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_show_without_warning
|
11
|
+
get :show, id: @thing
|
12
|
+
assert_response :success
|
13
|
+
assert_warning_is_not_displayed
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_show_with_warning
|
17
|
+
get :show, id: @thing_with_warning
|
18
|
+
assert_response :success
|
19
|
+
assert_warning_displayed
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_show_when_thing_without_warning_but_warning_in_session
|
23
|
+
get(
|
24
|
+
:show,
|
25
|
+
{id: @thing},
|
26
|
+
{:ominous_warnings => {@warning.name.to_sym => :show}}
|
27
|
+
)
|
28
|
+
assert_response :success
|
29
|
+
assert_warning_displayed
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_show_when_warning_in_session_marked_as_hide
|
33
|
+
get(
|
34
|
+
:show,
|
35
|
+
{id: @thing},
|
36
|
+
{:ominous_warnings => {@warning.name.to_sym => :hide}}
|
37
|
+
)
|
38
|
+
assert_response :success
|
39
|
+
assert_warning_is_not_displayed
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_triggering_warning_does_not_over_ride_existing_flags
|
43
|
+
get(
|
44
|
+
:show,
|
45
|
+
{id: @thing_with_warning},
|
46
|
+
{:ominous_warnings => {@warning.name.to_sym => :hide}}
|
47
|
+
)
|
48
|
+
assert_response :success
|
49
|
+
assert_warning_is_not_displayed
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_edit
|
53
|
+
get :edit, id: @thing
|
54
|
+
assert_response :success
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_update
|
58
|
+
put :update, id: @thing, thing: { name: @thing.name }
|
59
|
+
assert_redirected_to thing_path(assigns(:thing))
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_destroy
|
63
|
+
assert_difference('Thing.count', -1) do
|
64
|
+
delete :destroy, id: @thing
|
65
|
+
end
|
66
|
+
|
67
|
+
assert_redirected_to things_path
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_index
|
71
|
+
get :index
|
72
|
+
assert_response :success
|
73
|
+
assert_not_nil assigns(:things)
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_new
|
78
|
+
get :new
|
79
|
+
assert_response :success
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_create
|
83
|
+
assert_difference('Thing.count') do
|
84
|
+
post :create, thing: { name: @thing.name }
|
85
|
+
end
|
86
|
+
|
87
|
+
assert_redirected_to thing_path(assigns(:thing))
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
def assert_warning_displayed
|
92
|
+
assert_tag :tag => "div", :attributes => { :class => "ominous_warnings" }
|
93
|
+
end
|
94
|
+
|
95
|
+
def assert_warning_is_not_displayed
|
96
|
+
assert_no_tag :tag => "div", :attributes => { :class => "ominous_warnings" }
|
97
|
+
end
|
98
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Ominous
|
4
|
+
class WarningsControllerTest < ActionController::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@warning = Ominous::Warning.find(1)
|
8
|
+
@routes = Engine.routes # Added so that test action is matched to correct route
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
def test_dismiss
|
13
|
+
put(
|
14
|
+
:dismiss,
|
15
|
+
{id: @warning},
|
16
|
+
{:ominous_warnings => {@warning.name.to_sym => :show}}
|
17
|
+
)
|
18
|
+
assert_equal(:hide, session[:ominous_warnings][@warning.name.to_sym])
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# Configure Rails Environment
|
2
|
+
ENV["RAILS_ENV"] = "test"
|
3
|
+
|
4
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
5
|
+
require "rails/test_help"
|
6
|
+
|
7
|
+
Rails.backtrace_cleaner.remove_silencers!
|
8
|
+
|
9
|
+
# Load support files
|
10
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
11
|
+
|
12
|
+
# Load fixtures from the engine
|
13
|
+
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
14
|
+
ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures/", __FILE__)
|
15
|
+
end
|
16
|
+
|
17
|
+
class ActiveSupport::TestCase
|
18
|
+
fixtures :all
|
19
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Ominous
|
4
|
+
class WarningTest < ActiveSupport::TestCase
|
5
|
+
def setup
|
6
|
+
@warning = Warning.find(1)
|
7
|
+
@closer = Closer.find(1)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_join_to_closer
|
11
|
+
assert_equal(@closer, @warning.closers.find_by_id(@closer.id))
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_requests
|
15
|
+
assert_equal([], Warning.requests)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_trigger
|
19
|
+
Warning.trigger(@warning.name)
|
20
|
+
assert_equal([@warning.name.to_sym], Warning.requests)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_trigger_with_non_existent_warning
|
24
|
+
assert_raise RuntimeError do
|
25
|
+
Warning.trigger(:does_not_exist)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_moving_closers
|
30
|
+
closer_one = Closer.find(1)
|
31
|
+
closer_two = Closer.find(2)
|
32
|
+
assert_equal([closer_one, closer_two], @warning.closers)
|
33
|
+
@warning.move_to_top(closer_two)
|
34
|
+
assert_equal([closer_two, closer_one], @warning.reload.closers)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|