Permalink
Browse files

Add specs for rails2 and rails3

  • Loading branch information...
1 parent e52ba20 commit 098b8d5a47a2b39fa653b79e5dbd3e21e44e42b0 @LTe LTe committed Oct 20, 2011
View
@@ -0,0 +1,7 @@
+require 'rspec/core/rake_task'
+
+RSpec::Core::RakeTask::new(:spec) do |spec|
+ spec.fail_on_error = false
+end
+
+task :default => :spec
View
@@ -0,0 +1,5 @@
+source "http://rubygems.org"
+
+gemspec :path => File.expand_path('../..', __FILE__)
+gem "rails", "~> 2.3"
+File.open(File.expand_path("../Gemfile-shared", __FILE__)){|f| eval(f.read)}
@@ -0,0 +1,49 @@
+PATH
+ remote: /home/lite/work/validates_xml
+ specs:
+ validates_xml (1.0.2)
+ activerecord (>= 2.0.0)
+
+GEM
+ remote: http://rubygems.org/
+ specs:
+ actionmailer (2.3.14)
+ actionpack (= 2.3.14)
+ actionpack (2.3.14)
+ activesupport (= 2.3.14)
+ rack (~> 1.1.0)
+ activerecord (2.3.14)
+ activesupport (= 2.3.14)
+ activeresource (2.3.14)
+ activesupport (= 2.3.14)
+ activesupport (2.3.14)
+ diff-lcs (1.1.3)
+ rack (1.1.2)
+ rails (2.3.14)
+ actionmailer (= 2.3.14)
+ actionpack (= 2.3.14)
+ activerecord (= 2.3.14)
+ activeresource (= 2.3.14)
+ activesupport (= 2.3.14)
+ rake (>= 0.8.3)
+ rake (0.9.2)
+ rspec (2.6.0)
+ rspec-core (~> 2.6.0)
+ rspec-expectations (~> 2.6.0)
+ rspec-mocks (~> 2.6.0)
+ rspec-core (2.6.4)
+ rspec-expectations (2.6.0)
+ diff-lcs (~> 1.1.2)
+ rspec-mocks (2.6.0)
+ sqlite3 (1.3.4)
+ sqlite3-ruby (1.3.3)
+ sqlite3 (>= 1.3.3)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ rails (~> 2.3)
+ rspec (~> 2.6.0)
+ sqlite3-ruby
+ validates_xml!
View
@@ -0,0 +1,5 @@
+source "http://rubygems.org"
+
+gemspec :path => File.expand_path('../..', __FILE__)
+gem "rails", "~> 3.0.0"
+File.open(File.expand_path("../Gemfile-shared", __FILE__)){|f| eval(f.read)}
@@ -0,0 +1,95 @@
+PATH
+ remote: /home/lite/work/validates_xml
+ specs:
+ validates_xml (1.0.2)
+ activerecord (>= 2.0.0)
+
+GEM
+ remote: http://rubygems.org/
+ specs:
+ abstract (1.0.0)
+ actionmailer (3.0.10)
+ actionpack (= 3.0.10)
+ mail (~> 2.2.19)
+ actionpack (3.0.10)
+ activemodel (= 3.0.10)
+ activesupport (= 3.0.10)
+ builder (~> 2.1.2)
+ erubis (~> 2.6.6)
+ i18n (~> 0.5.0)
+ rack (~> 1.2.1)
+ rack-mount (~> 0.6.14)
+ rack-test (~> 0.5.7)
+ tzinfo (~> 0.3.23)
+ activemodel (3.0.10)
+ activesupport (= 3.0.10)
+ builder (~> 2.1.2)
+ i18n (~> 0.5.0)
+ activerecord (3.0.10)
+ activemodel (= 3.0.10)
+ activesupport (= 3.0.10)
+ arel (~> 2.0.10)
+ tzinfo (~> 0.3.23)
+ activeresource (3.0.10)
+ activemodel (= 3.0.10)
+ activesupport (= 3.0.10)
+ activesupport (3.0.10)
+ arel (2.0.10)
+ builder (2.1.2)
+ diff-lcs (1.1.3)
+ erubis (2.6.6)
+ abstract (>= 1.0.0)
+ i18n (0.5.0)
+ mail (2.2.19)
+ activesupport (>= 2.3.6)
+ i18n (>= 0.4.0)
+ mime-types (~> 1.16)
+ treetop (~> 1.4.8)
+ mime-types (1.16)
+ polyglot (0.3.2)
+ rack (1.2.4)
+ rack-mount (0.6.14)
+ rack (>= 1.0.0)
+ rack-test (0.5.7)
+ rack (>= 1.0)
+ rails (3.0.10)
+ actionmailer (= 3.0.10)
+ actionpack (= 3.0.10)
+ activerecord (= 3.0.10)
+ activeresource (= 3.0.10)
+ activesupport (= 3.0.10)
+ bundler (~> 1.0)
+ railties (= 3.0.10)
+ railties (3.0.10)
+ actionpack (= 3.0.10)
+ activesupport (= 3.0.10)
+ rake (>= 0.8.7)
+ rdoc (~> 3.4)
+ thor (~> 0.14.4)
+ rake (0.9.2)
+ rdoc (3.6.1)
+ rspec (2.6.0)
+ rspec-core (~> 2.6.0)
+ rspec-expectations (~> 2.6.0)
+ rspec-mocks (~> 2.6.0)
+ rspec-core (2.6.4)
+ rspec-expectations (2.6.0)
+ diff-lcs (~> 1.1.2)
+ rspec-mocks (2.6.0)
+ sqlite3 (1.3.4)
+ sqlite3-ruby (1.3.3)
+ sqlite3 (>= 1.3.3)
+ thor (0.14.6)
+ treetop (1.4.10)
+ polyglot
+ polyglot (>= 0.3.1)
+ tzinfo (0.3.30)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ rails (~> 3.0.0)
+ rspec (~> 2.6.0)
+ sqlite3-ruby
+ validates_xml!
View
@@ -0,0 +1,2 @@
+gem "sqlite3-ruby"
+gem "rspec", "~> 2.6.0"
View
@@ -1,3 +1,5 @@
+require 'active_record'
+
module ValidatesXML
def self.validates_xml(xml, options={})
begin
View
@@ -0,0 +1,7 @@
+#!/usr/bin/env ruby
+
+%w[rails2 rails3].each do |rails|
+ ENV["BUNDLE_GEMFILE"] = "gemfiles/Gemfile-#{rails}"
+ system("bundle exec rake spec")
+end
+
View
@@ -0,0 +1,36 @@
+$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
+require 'bundler'
+Bundler.require
+require 'rexml/document'
+
+Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
+
+ActiveRecord::Migration.verbose = false
+ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
+
+RSpec.configure do |config|
+ config.before(:all) do
+ create_database
+ end
+
+ config.after(:all) do
+ drop_database
+ end
+
+ config.extend Rails3::Execute
+end
+
+def create_database
+ ActiveRecord::Schema.define(:version => 1) do
+ create_table :models do |t|
+ t.string :xml
+ t.string :xml_helper
+ end
+ end
+end
+
+def drop_database
+ ActiveRecord::Base.connection.tables.each do |table|
+ ActiveRecord::Base.connection.drop_table(table)
+ end
+end
View
@@ -0,0 +1,4 @@
+class Model < ActiveRecord::Base
+ validates_xml :xml
+ validates :xml_helper, :xml_format => true if ActiveRecord::VERSION::MAJOR > 2
+end
View
@@ -0,0 +1,9 @@
+module Rails3
+ module Execute
+ def rails3(&block)
+ if ActiveRecord::VERSION::MAJOR > 2
+ block.call
+ end
+ end
+ end
+end
View
@@ -0,0 +1,27 @@
+require 'spec_helper'
+
+describe "validates_xml" do
+ it "validation should pass the correct XML (with helper)" do
+ @model = Model.new(:xml => "<xml>hello</xml>")
+ @model.xml_helper = "<xml>hello</xml>"
+ @model.should be_valid
+ end
+
+ it "validation should not pass the incorrect XML (with helper)" do
+ @model = Model.new(:xml => "<xml>hello<.xml>")
+ @model.xml_helper = "<xml>hello<.xml>"
+ @model.should_not be_valid
+ end
+
+ rails3 do
+ it "validation should pass correct XML" do
+ @model = Model.new(:xml_helper => "<xml>hello</xml>")
+ @model.should be_valid
+ end
+
+ it "validation should not pass incorrect XML" do
+ @model = Model.new(:xml_helper => "<xml>hello<.xml>")
+ @model.should_not be_valid
+ end
+ end
+end

0 comments on commit 098b8d5

Please sign in to comment.