From a24ea686fa43bd5cf62f8d7b74bfae9511f9c49c Mon Sep 17 00:00:00 2001 From: Marc Remolt Date: Mon, 13 Jun 2011 15:02:40 +0200 Subject: [PATCH] Image import working * bundle update * replacement of image URLs now considers wordpress thumbnails (like -150x150) * added Guard for autotesting --- .gitignore | 3 ++ Gemfile | 12 +++++-- Gemfile.lock | 25 +++++++++++--- Guardfile | 26 ++++++++++++++ lib/wordpress/attachment.rb | 7 +++- ...20110613120139_create_seo_meta_for_blog.rb | 25 ++++++++++++++ spec/dummy/db/seeds/refinerycms_blog.rb | 32 ++++++++++-------- spec/fixtures/200px-Tux.svg_.png | Bin 0 -> 21663 bytes spec/fixtures/wordpress_dump.xml | 6 ++-- spec/lib/wordpress/attachment_spec.rb | 16 +++++++-- spec/spec_helper.rb | 12 +++++++ 11 files changed, 139 insertions(+), 25 deletions(-) create mode 100644 Guardfile create mode 100644 spec/dummy/db/migrate/20110613120139_create_seo_meta_for_blog.rb create mode 100644 spec/fixtures/200px-Tux.svg_.png diff --git a/.gitignore b/.gitignore index decc337..bf4b0d6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ pkg/ spec/dummy/db/*.sqlite3 spec/dummy/log/*.log spec/dummy/tmp/ +*.un~ +refinerycms-wordpress-import-*.gem +*.swp diff --git a/Gemfile b/Gemfile index d6489a1..1297d72 100644 --- a/Gemfile +++ b/Gemfile @@ -3,9 +3,17 @@ source "http://rubygems.org" gem "rails", "3.0.7" #gem "capybara", ">= 1.0.0.beta1" gem "sqlite3" +gem "rmagick" -gem "rspec-rails", ">= 2.6.0" -gem "database_cleaner" +group :development, :test do + gem "rspec-rails", ">= 2.6.0" + gem "database_cleaner" + gem 'guard-rspec' + gem 'ffi' + gem 'guard-bundler' + gem 'libnotify' if RUBY_PLATFORM =~ /linux/i + gem 'fakeweb' +end # To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+) # gem 'ruby-debug' diff --git a/Gemfile.lock b/Gemfile.lock index 1f3e0ff..82e738e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -42,7 +42,7 @@ GEM arel (2.0.10) awesome_nested_set (2.0.0) activerecord (>= 3.0.0) - babosa (0.3.4) + babosa (0.3.5) bcrypt-ruby (2.1.4) builder (2.1.2) database_cleaner (0.6.7) @@ -51,17 +51,27 @@ GEM orm_adapter (~> 0.0.3) warden (~> 1.0.3) diff-lcs (1.1.2) - dragonfly (0.9.3) + dragonfly (0.9.4) rack erubis (2.6.6) abstract (>= 1.0.0) + fakeweb (1.3.0) + ffi (1.0.9) filters_spam (0.3) friendly_id_globalize3 (3.2.1.3) babosa (~> 0.3.0) globalize3 (0.1.0) activemodel (>= 3.0.0) activerecord (>= 3.0.0) + guard (0.4.2) + thor (~> 0.14.6) + guard-bundler (0.1.3) + bundler (>= 1.0.0) + guard (>= 0.2.2) + guard-rspec (0.4.0) + guard (>= 0.4.0) i18n (0.5.0) + libnotify (0.5.5) mail (2.2.19) activesupport (>= 2.3.6) i18n (>= 0.4.0) @@ -91,7 +101,7 @@ GEM activesupport (= 3.0.7) rake (>= 0.8.7) thor (~> 0.14.4) - rake (0.9.1) + rake (0.9.2) refinerycms (1.0.0) bundler (~> 1.0) refinerycms-authentication (= 1.0.0) @@ -142,11 +152,12 @@ GEM refinerycms-core (= 1.0.0) refinerycms-settings (1.0.0) refinerycms-base (= 1.0.0) + rmagick (2.13.1) rspec (2.6.0) rspec-core (~> 2.6.0) rspec-expectations (~> 2.6.0) rspec-mocks (~> 2.6.0) - rspec-core (2.6.3) + rspec-core (2.6.4) rspec-expectations (2.6.0) diff-lcs (~> 1.1.2) rspec-mocks (2.6.0) @@ -172,9 +183,15 @@ PLATFORMS DEPENDENCIES database_cleaner + fakeweb + ffi + guard-bundler + guard-rspec + libnotify rails (= 3.0.7) refinerycms refinerycms-blog refinerycms-wordpress-import! + rmagick rspec-rails (>= 2.6.0) sqlite3 diff --git a/Guardfile b/Guardfile new file mode 100644 index 0000000..7d89890 --- /dev/null +++ b/Guardfile @@ -0,0 +1,26 @@ +# A sample Guardfile +# More info at https://github.com/guard/guard#readme + +guard 'rspec', :version => 2 do + watch(%r{^spec/.+_spec\.rb$}) + watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" } + watch('spec/spec_helper.rb') { "spec" } + + # Rails example + watch(%r{^spec/.+_spec\.rb$}) + watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" } + watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" } + watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] } + watch(%r{^spec/support/(.+)\.rb$}) { "spec" } + watch('spec/spec_helper.rb') { "spec" } + watch('config/routes.rb') { "spec/routing" } + watch('app/controllers/application_controller.rb') { "spec/controllers" } + # Capybara request specs + watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" } +end + +guard 'bundler' do + watch('Gemfile') + # Uncomment next line if Gemfile contain `gemspec' command + watch(/^.+\.gemspec/) +end diff --git a/lib/wordpress/attachment.rb b/lib/wordpress/attachment.rb index f4f898d..3026163 100644 --- a/lib/wordpress/attachment.rb +++ b/lib/wordpress/attachment.rb @@ -43,7 +43,12 @@ module Refinery def replace_image_url_in_blog_posts ::BlogPost.all.each do |post| if post.body.include? url - post.body = post.body.gsub(url, refinery_image.image.url) + url_parts = url.split('.') + extension = url_parts.pop + url_without_extension = url_parts.join('.') + pattern = /#{url_without_extension}(-\d+x\d+)?\.#{extension}/ + + post.body = post.body.gsub(pattern, refinery_image.image.url) post.save! end end diff --git a/spec/dummy/db/migrate/20110613120139_create_seo_meta_for_blog.rb b/spec/dummy/db/migrate/20110613120139_create_seo_meta_for_blog.rb new file mode 100644 index 0000000..baf81a4 --- /dev/null +++ b/spec/dummy/db/migrate/20110613120139_create_seo_meta_for_blog.rb @@ -0,0 +1,25 @@ +class CreateSeoMetaForBlog < ActiveRecord::Migration + + def self.up + unless ::SeoMetum.table_exists? + create_table ::SeoMetum.table_name do |t| + t.integer :seo_meta_id + t.string :seo_meta_type + + t.string :browser_title + t.string :meta_keywords + t.text :meta_description + + t.timestamps + end + + add_index ::SeoMetum.table_name, :id + add_index ::SeoMetum.table_name, [:seo_meta_id, :seo_meta_type] + end + end + + def self.down + # can't drop the table because someone else might be using it. + end + +end diff --git a/spec/dummy/db/seeds/refinerycms_blog.rb b/spec/dummy/db/seeds/refinerycms_blog.rb index f958fab..0be2a06 100644 --- a/spec/dummy/db/seeds/refinerycms_blog.rb +++ b/spec/dummy/db/seeds/refinerycms_blog.rb @@ -1,16 +1,20 @@ -User.find(:all).each do |user| - user.plugins.create(:name => "refinerycms_blog", - :position => (user.plugins.maximum(:position) || -1) +1) -end +::User.find(:all).each do |user| + if user.plugins.where(:name => 'refinerycms_blog').blank? + user.plugins.create(:name => "refinerycms_blog", + :position => (user.plugins.maximum(:position) || -1) +1) + end +end if defined?(::User) -page = Page.create( - :title => "Blog", - :link_url => "/blog", - :deletable => false, - :position => ((Page.maximum(:position, :conditions => {:parent_id => nil}) || -1)+1), - :menu_match => "^/blogs?(\/|\/.+?|)$" -) +if defined?(::Page) + page = ::Page.create( + :title => "Blog", + :link_url => "/blog", + :deletable => false, + :position => ((Page.maximum(:position, :conditions => {:parent_id => nil}) || -1)+1), + :menu_match => "^/blogs?(\/|\/.+?|)$" + ) -Page.default_parts.each do |default_page_part| - page.parts.create(:title => default_page_part, :body => nil) -end + ::Page.default_parts.each do |default_page_part| + page.parts.create(:title => default_page_part, :body => nil) + end +end \ No newline at end of file diff --git a/spec/fixtures/200px-Tux.svg_.png b/spec/fixtures/200px-Tux.svg_.png new file mode 100644 index 0000000000000000000000000000000000000000..75993e22bb7575a7a727e7297258b009db93d65f GIT binary patch literal 21663 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 - + My test blog http://localhost/wordpress Just another WordPress site - Mon, 06 Jun 2011 17:36:50 +0000 + Mon, 06 Jun 2011 18:42:09 +0000 en 1.1 http://localhost/wordpress @@ -163,6 +163,8 @@ In hac habitasse platea dictumst. Nunc quis tortor sed libero hendrerit dapibu Tux, the Linux mascot + Integer interdum purus id erat. Duis nec velit vitae dolor mattis euismod. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse pellentesque dignissim lacus. diff --git a/spec/lib/wordpress/attachment_spec.rb b/spec/lib/wordpress/attachment_spec.rb index e77870b..bb08ee6 100644 --- a/spec/lib/wordpress/attachment_spec.rb +++ b/spec/lib/wordpress/attachment_spec.rb @@ -28,6 +28,8 @@ describe Refinery::WordPress::Attachment, :type => :model do end describe "#replace_image_url" do + let(:post) { BlogPost.first } + before do test_dump.authors.each(&:to_refinery) test_dump.posts.each(&:to_refinery) @@ -36,11 +38,15 @@ describe Refinery::WordPress::Attachment, :type => :model do attachment.replace_image_url_in_blog_posts end + specify { post.body.should_not include attachment.url } + specify { post.body.should_not include '200px-Tux.svg_-150x150.png' } + specify { post.body.should_not include 'wp-content' } + it "should replace attachment urls in the generated BlogPosts" do - BlogPost.first.body.should_not include(attachment.url) - BlogPost.first.body.should include(@image.image.url) + post.body.should include(@image.image.url) end + end end @@ -52,5 +58,11 @@ describe Refinery::WordPress::Attachment, :type => :model do specify { attachment.file_name.should == 'cv.txt' } specify { attachment.post_date.should == DateTime.new(2011, 6, 6, 17, 27, 50) } specify { attachment.should_not be_an_image } + + describe '#to_refinery' do + it "should raise an exception for now" do + lambda { attachment.to_refinery }.should raise_error + end + end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index de25430..c5a4018 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -5,6 +5,18 @@ require File.expand_path("../dummy/config/environment.rb", __FILE__) require "rails/test_help" require "rspec/rails" require "database_cleaner" +require "fakeweb" + +FakeWeb.allow_net_connect = false + +# Simulating download of wordpress file attachments. The dump expects the files +# to be at the given URLs +FakeWeb.register_uri(:get, + "http://localhost/wordpress/wp-content/uploads/2011/05/200px-Tux.svg_.png", + :body => File.new('spec/fixtures/200px-Tux.svg_.png').read, + :content_type => "image/png") + +FakeWeb.register_uri(:get, "http://localhost/wordpress/wp-content/uploads/2011/05/cv.txt", :body => "Hello World!", :content_type => "text/plain") ActionMailer::Base.delivery_method = :test ActionMailer::Base.perform_deliveries = true