/test/attachment_magick/units/attachment_magick_test.rb

https://github.com/marcosinger/attachment_magick · Ruby · 133 lines · 97 code · 35 blank · 1 comment · 0 complexity · dfbdcb148911605cffff7fb4b104676f MD5 · raw file

  1. require 'test_helper'
  2. require 'open-uri'
  3. class AttachmentMagickTest < ActiveSupport::TestCase
  4. class Dog
  5. include Mongoid::Document
  6. include AttachmentMagick
  7. field :name
  8. attachment_magick do
  9. grid_1
  10. end
  11. end
  12. class Cat
  13. include Mongoid::Document
  14. include AttachmentMagick
  15. field :name
  16. attachment_magick do
  17. grid_1 "300x150"
  18. grid_7 "x560>"
  19. end
  20. end
  21. test "deveria manter o valor do grid original" do
  22. assert_equal "300x150", Cat.style_grid_1
  23. assert_equal "x560>", Cat.style_grid_7
  24. assert_equal "54x", Dog.style_grid_1
  25. end
  26. def test_has_attachment_magick
  27. grids = Artist.send(:generate_grids)
  28. Artist.attachment_magick do
  29. grid_1
  30. grid_5 "120x240"
  31. grid_7 :height => 200
  32. grid_10 :height => 200, :width => 100
  33. end
  34. assert_equal [:grid_1, :grid_5, :grid_7, :grid_10], order_array(Artist.attachment_magick_default_options[:styles].keys)
  35. assert_equal grids[:grid_1][:width], Artist.attachment_magick_default_options[:styles][:grid_1][:width]
  36. assert_equal grids[:grid_1][:height], Artist.attachment_magick_default_options[:styles][:grid_1][:height]
  37. assert_equal 120, Artist.attachment_magick_default_options[:styles][:grid_5][:width]
  38. assert_equal 240, Artist.attachment_magick_default_options[:styles][:grid_5][:height]
  39. assert_equal grids[:grid_7][:width], Artist.attachment_magick_default_options[:styles][:grid_7][:width]
  40. assert_equal 200, Artist.attachment_magick_default_options[:styles][:grid_7][:height]
  41. assert_equal 100, Artist.attachment_magick_default_options[:styles][:grid_10][:width]
  42. assert_equal 200, Artist.attachment_magick_default_options[:styles][:grid_10][:height]
  43. end
  44. def test_generate_grids
  45. column_width = 29
  46. column_amount = 10
  47. gutter = 3
  48. #grid_system = open("http://www.spry-soft.com/grids/grid/?column_width=#{column_width}&column_amount=#{column_amount}&gutter_width=#{gutter}") { |url| Hpricot(url) }
  49. grid_system = open("http://grids.heroku.com/grid?column_width=#{column_width}&column_amount=#{column_amount}&gutter_width=#{gutter}") { |url| Hpricot(url) }
  50. grids = Artist.send(:generate_grids, column_amount, column_width, gutter)
  51. assert_equal grids.size, column_amount + AttachmentMagick.configuration.custom_styles.styles.size
  52. grids.keys.each do |key|
  53. assert_equal grids[key][:width], grid_system.search(".#{key} p").first.inner_html.gsub(/\D/, "").to_i if key.to_s.include?("grid")
  54. end
  55. end
  56. def test_setup
  57. AttachmentMagick.setup do |config|
  58. config.columns_amount = 19
  59. config.columns_width = 54
  60. config.gutter = 3
  61. config.custom_styles do
  62. small "36x46"
  63. full :width => 1024
  64. end
  65. end
  66. Artist.attachment_magick do
  67. small
  68. full
  69. end
  70. assert_equal 19, AttachmentMagick.configuration.columns_amount
  71. assert_equal 54, AttachmentMagick.configuration.columns_width
  72. assert_equal 3, AttachmentMagick.configuration.gutter
  73. assert_equal 36, Artist.attachment_magick_default_options[:styles][:small][:width]
  74. assert_equal 46, Artist.attachment_magick_default_options[:styles][:small][:height]
  75. assert_equal 1024, Artist.attachment_magick_default_options[:styles][:full][:width]
  76. end
  77. def test_setup_with_stylesheet
  78. assert_equal 19, AttachmentMagick.configuration.columns_amount
  79. assert_equal 54, AttachmentMagick.configuration.columns_width
  80. assert_equal 3, AttachmentMagick.configuration.gutter
  81. AttachmentMagick.setup {|config| config.parse_stylesheet 'old_grid.css'}
  82. assert_equal 12, AttachmentMagick.configuration.columns_amount
  83. assert_equal 60, AttachmentMagick.configuration.columns_width
  84. assert_equal 10, AttachmentMagick.configuration.gutter
  85. AttachmentMagick.setup {|config| config.parse_stylesheet 'grid.css'}
  86. assert_equal 19, AttachmentMagick.configuration.columns_amount
  87. assert_equal 54, AttachmentMagick.configuration.columns_width
  88. assert_equal 4, AttachmentMagick.configuration.gutter
  89. AttachmentMagick.setup {|config| config.parse_stylesheet 'not_found.css'}
  90. assert_equal 19, AttachmentMagick.configuration.columns_amount
  91. assert_equal 54, AttachmentMagick.configuration.columns_width
  92. assert_equal 4, AttachmentMagick.configuration.gutter
  93. end
  94. private
  95. def order_array(array)
  96. array.sort{|x, y| x.to_s.split("_")[1].to_i <=> y.to_s.split("_")[1].to_i}
  97. end
  98. end