rails_imager 0.0.16 → 0.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -12
  3. data/app/controllers/rails_imager/images_controller.rb +1 -3
  4. data/app/helpers/rails_imager/images_helper.rb +17 -14
  5. data/lib/rails_imager.rb +5 -3
  6. data/lib/rails_imager/engine.rb +2 -4
  7. data/lib/rails_imager/version.rb +1 -1
  8. metadata +44 -132
  9. data/test/controllers/rails_imager/images_controller_test.rb +0 -31
  10. data/test/dummy/README.rdoc +0 -28
  11. data/test/dummy/Rakefile +0 -6
  12. data/test/dummy/app/assets/javascripts/application.js +0 -13
  13. data/test/dummy/app/assets/stylesheets/application.css +0 -13
  14. data/test/dummy/app/controllers/application_controller.rb +0 -5
  15. data/test/dummy/app/helpers/application_helper.rb +0 -2
  16. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  17. data/test/dummy/bin/bundle +0 -3
  18. data/test/dummy/bin/rails +0 -4
  19. data/test/dummy/bin/rake +0 -4
  20. data/test/dummy/config.ru +0 -4
  21. data/test/dummy/config/application.rb +0 -23
  22. data/test/dummy/config/boot.rb +0 -5
  23. data/test/dummy/config/database.yml +0 -25
  24. data/test/dummy/config/environment.rb +0 -5
  25. data/test/dummy/config/environments/development.rb +0 -29
  26. data/test/dummy/config/environments/production.rb +0 -80
  27. data/test/dummy/config/environments/test.rb +0 -36
  28. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  29. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  30. data/test/dummy/config/initializers/inflections.rb +0 -16
  31. data/test/dummy/config/initializers/mime_types.rb +0 -5
  32. data/test/dummy/config/initializers/secret_token.rb +0 -12
  33. data/test/dummy/config/initializers/session_store.rb +0 -3
  34. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  35. data/test/dummy/config/locales/en.yml +0 -23
  36. data/test/dummy/config/routes.rb +0 -3
  37. data/test/dummy/db/development.sqlite3 +0 -0
  38. data/test/dummy/db/test.sqlite3 +0 -0
  39. data/test/dummy/log/development.log +0 -1367
  40. data/test/dummy/log/test.log +0 -4561
  41. data/test/dummy/public/404.html +0 -58
  42. data/test/dummy/public/422.html +0 -58
  43. data/test/dummy/public/500.html +0 -57
  44. data/test/dummy/public/favicon.ico +0 -0
  45. data/test/dummy/public/test.png +0 -0
  46. data/test/dummy/tmp/cache/assets/development/sprockets/0664a19cc0f5d977f80bafcefe17e9c9 +0 -0
  47. data/test/dummy/tmp/cache/assets/development/sprockets/0a9ac96e2e41642bb5a979bc1bba099d +0 -0
  48. data/test/dummy/tmp/cache/assets/development/sprockets/2ca25a1b4dbb5046e79cdc5c2b0e6d55 +0 -0
  49. data/test/dummy/tmp/cache/assets/development/sprockets/510b6fd97773642f0b777a14f0ef5366 +0 -0
  50. data/test/dummy/tmp/cache/assets/development/sprockets/9e801b0fd4666d3a5cb45345d7de21a7 +0 -0
  51. data/test/dummy/tmp/cache/assets/development/sprockets/b40bea70cdbfe1b3b11ede81a1d20002 +0 -0
  52. data/test/dummy/tmp/cache/assets/development/sprockets/be7b64afb60161c417c6465682b304ac +0 -0
  53. data/test/dummy/tmp/cache/assets/development/sprockets/c0dbbd2455c6e7638bd41c5f003dff53 +0 -0
  54. data/test/dummy/tmp/cache/assets/development/sprockets/cc85e49d1f8af3e2bb0073f666f413be +0 -0
  55. data/test/dummy/tmp/cache/assets/development/sprockets/e31424e52369b0afcae5d0350c19ae82 +0 -0
  56. data/test/dummy/tmp/cache/assets/development/sprockets/f202557856e13ca5921856c87d402bd4 +0 -0
  57. data/test/dummy/tmp/cache/assets/development/sprockets/fe7c9c32074445201dccf284f19078bf +0 -0
  58. data/test/dummy/tmp/cache/assets/test/sprockets/0a9ac96e2e41642bb5a979bc1bba099d +0 -0
  59. data/test/dummy/tmp/cache/assets/test/sprockets/2ca25a1b4dbb5046e79cdc5c2b0e6d55 +0 -0
  60. data/test/dummy/tmp/cache/assets/test/sprockets/510b6fd97773642f0b777a14f0ef5366 +0 -0
  61. data/test/dummy/tmp/cache/assets/test/sprockets/9e801b0fd4666d3a5cb45345d7de21a7 +0 -0
  62. data/test/dummy/tmp/cache/assets/test/sprockets/b40bea70cdbfe1b3b11ede81a1d20002 +0 -0
  63. data/test/dummy/tmp/cache/assets/test/sprockets/be7b64afb60161c417c6465682b304ac +0 -0
  64. data/test/dummy/tmp/cache/assets/test/sprockets/c0dbbd2455c6e7638bd41c5f003dff53 +0 -0
  65. data/test/dummy/tmp/cache/assets/test/sprockets/e31424e52369b0afcae5d0350c19ae82 +0 -0
  66. data/test/dummy/tmp/cache/assets/test/sprockets/f202557856e13ca5921856c87d402bd4 +0 -0
  67. data/test/dummy/tmp/cache/assets/test/sprockets/fe7c9c32074445201dccf284f19078bf +0 -0
  68. data/test/helpers/rails_imager/images_helper_test.rb +0 -8
  69. data/test/image_handler_test.rb +0 -138
  70. data/test/integration/navigation_test.rb +0 -10
  71. data/test/rails_imager_test.rb +0 -7
  72. data/test/test.png +0 -0
  73. data/test/test_helper.rb +0 -15
@@ -1,58 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>The page you were looking for doesn't exist (404)</title>
5
- <style>
6
- body {
7
- background-color: #EFEFEF;
8
- color: #2E2F30;
9
- text-align: center;
10
- font-family: arial, sans-serif;
11
- }
12
-
13
- div.dialog {
14
- width: 25em;
15
- margin: 4em auto 0 auto;
16
- border: 1px solid #CCC;
17
- border-right-color: #999;
18
- border-left-color: #999;
19
- border-bottom-color: #BBB;
20
- border-top: #B00100 solid 4px;
21
- border-top-left-radius: 9px;
22
- border-top-right-radius: 9px;
23
- background-color: white;
24
- padding: 7px 4em 0 4em;
25
- }
26
-
27
- h1 {
28
- font-size: 100%;
29
- color: #730E15;
30
- line-height: 1.5em;
31
- }
32
-
33
- body > p {
34
- width: 33em;
35
- margin: 0 auto 1em;
36
- padding: 1em 0;
37
- background-color: #F7F7F7;
38
- border: 1px solid #CCC;
39
- border-right-color: #999;
40
- border-bottom-color: #999;
41
- border-bottom-left-radius: 4px;
42
- border-bottom-right-radius: 4px;
43
- border-top-color: #DADADA;
44
- color: #666;
45
- box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
- }
47
- </style>
48
- </head>
49
-
50
- <body>
51
- <!-- This file lives in public/404.html -->
52
- <div class="dialog">
53
- <h1>The page you were looking for doesn't exist.</h1>
54
- <p>You may have mistyped the address or the page may have moved.</p>
55
- </div>
56
- <p>If you are the application owner check the logs for more information.</p>
57
- </body>
58
- </html>
@@ -1,58 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>The change you wanted was rejected (422)</title>
5
- <style>
6
- body {
7
- background-color: #EFEFEF;
8
- color: #2E2F30;
9
- text-align: center;
10
- font-family: arial, sans-serif;
11
- }
12
-
13
- div.dialog {
14
- width: 25em;
15
- margin: 4em auto 0 auto;
16
- border: 1px solid #CCC;
17
- border-right-color: #999;
18
- border-left-color: #999;
19
- border-bottom-color: #BBB;
20
- border-top: #B00100 solid 4px;
21
- border-top-left-radius: 9px;
22
- border-top-right-radius: 9px;
23
- background-color: white;
24
- padding: 7px 4em 0 4em;
25
- }
26
-
27
- h1 {
28
- font-size: 100%;
29
- color: #730E15;
30
- line-height: 1.5em;
31
- }
32
-
33
- body > p {
34
- width: 33em;
35
- margin: 0 auto 1em;
36
- padding: 1em 0;
37
- background-color: #F7F7F7;
38
- border: 1px solid #CCC;
39
- border-right-color: #999;
40
- border-bottom-color: #999;
41
- border-bottom-left-radius: 4px;
42
- border-bottom-right-radius: 4px;
43
- border-top-color: #DADADA;
44
- color: #666;
45
- box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
- }
47
- </style>
48
- </head>
49
-
50
- <body>
51
- <!-- This file lives in public/422.html -->
52
- <div class="dialog">
53
- <h1>The change you wanted was rejected.</h1>
54
- <p>Maybe you tried to change something you didn't have access to.</p>
55
- </div>
56
- <p>If you are the application owner check the logs for more information.</p>
57
- </body>
58
- </html>
@@ -1,57 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>We're sorry, but something went wrong (500)</title>
5
- <style>
6
- body {
7
- background-color: #EFEFEF;
8
- color: #2E2F30;
9
- text-align: center;
10
- font-family: arial, sans-serif;
11
- }
12
-
13
- div.dialog {
14
- width: 25em;
15
- margin: 4em auto 0 auto;
16
- border: 1px solid #CCC;
17
- border-right-color: #999;
18
- border-left-color: #999;
19
- border-bottom-color: #BBB;
20
- border-top: #B00100 solid 4px;
21
- border-top-left-radius: 9px;
22
- border-top-right-radius: 9px;
23
- background-color: white;
24
- padding: 7px 4em 0 4em;
25
- }
26
-
27
- h1 {
28
- font-size: 100%;
29
- color: #730E15;
30
- line-height: 1.5em;
31
- }
32
-
33
- body > p {
34
- width: 33em;
35
- margin: 0 auto 1em;
36
- padding: 1em 0;
37
- background-color: #F7F7F7;
38
- border: 1px solid #CCC;
39
- border-right-color: #999;
40
- border-bottom-color: #999;
41
- border-bottom-left-radius: 4px;
42
- border-bottom-right-radius: 4px;
43
- border-top-color: #DADADA;
44
- color: #666;
45
- box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
- }
47
- </style>
48
- </head>
49
-
50
- <body>
51
- <!-- This file lives in public/500.html -->
52
- <div class="dialog">
53
- <h1>We're sorry, but something went wrong.</h1>
54
- </div>
55
- <p>If you are the application owner check the logs for more information.</p>
56
- </body>
57
- </html>
File without changes
Binary file
@@ -1,8 +0,0 @@
1
- require 'test_helper'
2
-
3
- class RailsImager::ImagesHelperTest < ActionView::TestCase
4
- test "#rails_imager_path" do
5
- path = rails_imager_p("test.png", :smartsize => 200)
6
- assert_equal "/rails_imager/images/test.png/?image[smartsize]=200", path
7
- end
8
- end
@@ -1,138 +0,0 @@
1
- require "test_helper"
2
- require "tmpdir"
3
- require "fileutils"
4
- require "datet"
5
- require "RMagick"
6
-
7
- class RailsImager::ImageHandlerTest < ActiveSupport::TestCase
8
- TEST_FILE = File.realpath("#{File.dirname(__FILE__)}/test.png")
9
- IMG = Magick::Image.read(TEST_FILE).first
10
- CACHE_DIR = "#{Dir.tmpdir}/rails-imager-test-cache"
11
- CACHE_PATH_SMARTSIZE_350 = "#{CACHE_DIR}/#{Knj::Strings.sanitize_filename(IMG.filename)}__ARGS___width-_height-_smartsize-350_maxwidth-_maxheight-_rounded_corners-_border-_border_color-_force-"
12
- FileUtils.rm_r(CACHE_DIR) if Dir.exists?(CACHE_DIR)
13
- Dir.mkdir(CACHE_DIR)
14
- RIMG = RailsImager::ImageHandler.new(:cache_dir => CACHE_DIR)
15
-
16
- MOD_TIME = File.mtime(TEST_FILE)
17
- PARAMS_350 = {:smartsize => 350}
18
- REQUEST_350 = Knj::Hash_methods.new({
19
- :headers => {
20
- "HTTP_IF_MODIFIED_SINCE" => MOD_TIME
21
- }
22
- })
23
-
24
- test "should do smartsizing" do
25
- newimg = RIMG.img_from_params(:image => IMG, :params => {:smartsize => "640"})
26
- assert_same newimg.columns, 640
27
- assert_same newimg.rows, 629
28
- end
29
-
30
- test "should do exact sizes" do
31
- newimg = RIMG.img_from_params(:image => IMG, :params => {:width => "640", :height => "480"})
32
- assert_same newimg.columns, 640
33
- assert_same newimg.rows, 480
34
- end
35
-
36
- test "should do rounded corners" do
37
- newimg = RIMG.img_from_params(:image => IMG, :params => {:smartsize => "640", :rounded_corners => "15", :border => "1", :border_color => "black"})
38
-
39
- assert_same newimg.columns, 640
40
- assert_same newimg.rows, 629
41
-
42
- #Test that corner pixels are transparent.
43
- 4.times do |time|
44
- pixel = newimg.pixel_color(time, time)
45
- assert_same pixel.opacity, 65535
46
-
47
- pixel_orig = IMG.pixel_color(time, time)
48
- assert_same pixel_orig.opacity, 0
49
- end
50
-
51
- #Test that it got a black border.
52
- pixel = newimg.pixel_color(2, 5)
53
- assert_same pixel.red, 0
54
- assert_same pixel.green, 0
55
- assert_same pixel.blue, 0
56
- assert_same pixel.opacity, 0
57
-
58
- #Test that middle pixels are not transparent.
59
- 100.upto(200) do |time|
60
- pixel = newimg.pixel_color(time, time)
61
- assert_same pixel.opacity, 0
62
-
63
- pixel_orig = IMG.pixel_color(time, time)
64
- assert_same pixel_orig.opacity, 0
65
- end
66
- end
67
-
68
- test "should do max width and height" do
69
- newimg = RIMG.img_from_params(:image => IMG, :params => {:maxwidth => 200})
70
- assert_same newimg.columns, 200
71
- assert_same newimg.rows, 196
72
-
73
- newimg = RIMG.img_from_params(:image => IMG, :params => {:maxheight => 200})
74
- assert_same newimg.rows, 200
75
- assert_same newimg.columns, 203
76
- end
77
-
78
- test "should be able to generate valid cache names" do
79
- cachename = RIMG.cachename_from_params(:fpath => '1\\2 3', :params => {:smartsize => 400})
80
- assert_equal cachename, "1_2_3__ARGS___width-_height-_smartsize-400_maxwidth-_maxheight-_rounded_corners-_border-_border_color-_force-"
81
- end
82
-
83
- test "should be able to generate cache" do
84
- res_from_img = RIMG.force_cache_from_request(:image => IMG, :request => REQUEST_350, :params => PARAMS_350)
85
- RIMG.clear_cache
86
- res_from_fpath = RIMG.force_cache_from_request(:fpath => TEST_FILE, :request => REQUEST_350, :params => PARAMS_350)
87
-
88
- assert_equal res_from_img[:cachepath], CACHE_PATH_SMARTSIZE_350
89
- assert_equal res_from_fpath[:cachepath], CACHE_PATH_SMARTSIZE_350
90
-
91
- assert res_from_img[:generated]
92
- assert res_from_fpath[:generated]
93
-
94
- res_from_img = RIMG.force_cache_from_request(:image => IMG, :request => REQUEST_350, :params => PARAMS_350)
95
- res_from_fpath = RIMG.force_cache_from_request(:fpath => TEST_FILE, :request => REQUEST_350, :params => PARAMS_350)
96
-
97
- assert_not res_from_img[:generated]
98
- assert_not res_from_fpath[:generated]
99
-
100
- RIMG.clear_cache
101
- end
102
-
103
- test "should send not modified" do
104
- #Generate fresh cache.
105
- res_from_img = RIMG.force_cache_from_request(:image => IMG, :request => REQUEST_350, :params => PARAMS_350)
106
- assert_equal res_from_img[:cachepath], CACHE_PATH_SMARTSIZE_350
107
- assert res_from_img[:generated]
108
-
109
- #Generate again - expect not-modified.
110
- res_from_img = RIMG.force_cache_from_request(:image => IMG, :request => REQUEST_350, :params => PARAMS_350)
111
- assert_not res_from_img[:generated]
112
- assert res_from_img[:not_modified]
113
-
114
- #Generate again - expected modified.
115
- day_ago = Datet.new.add_days(-1).time
116
- request_day_ago = Knj::Hash_methods.new(REQUEST_350.merge({:headers => {"HTTP_IF_MODIFIED_SINCE" => day_ago}}))
117
- res_from_img = RIMG.force_cache_from_request(:image => IMG, :request => request_day_ago, :params => PARAMS_350)
118
- assert_not res_from_img[:not_modified]
119
- assert_not res_from_img[:generated]
120
-
121
- #Clear cache to reset.
122
- RIMG.clear_cache
123
- end
124
-
125
- test "should be able to clear the cache" do
126
- RIMG.clear_cache do |fpath|
127
- true
128
- end
129
-
130
- cache_size = 0
131
- Dir.foreach(CACHE_DIR) do |file|
132
- next if file == "." or file == ".."
133
- cache_size += 1
134
- end
135
-
136
- assert_same cache_size, 0
137
- end
138
- end
@@ -1,10 +0,0 @@
1
- require 'test_helper'
2
-
3
- class NavigationTest < ActionDispatch::IntegrationTest
4
- fixtures :all
5
-
6
- # test "the truth" do
7
- # assert true
8
- # end
9
- end
10
-
@@ -1,7 +0,0 @@
1
- require 'test_helper'
2
-
3
- class RailsImagerTest < ActiveSupport::TestCase
4
- test "truth" do
5
- assert_kind_of Module, RailsImager
6
- end
7
- end
data/test/test.png DELETED
Binary file
data/test/test_helper.rb DELETED
@@ -1,15 +0,0 @@
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