<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>test/datasets/pages_with_positions.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,25 +1,120 @@
+# I think this is the one that should be moved to the extension Rakefile template
+
+# In rails 1.2, plugins aren't available in the path until they're loaded.
+# Check to see if the rspec plugin is installed first and require
+# it if it is.  If not, use the gem version.
+
+# Determine where the RSpec plugin is by loading the boot
+unless defined? RADIANT_ROOT
+  ENV[&quot;RAILS_ENV&quot;] = &quot;test&quot;
+  case
+  when ENV[&quot;RADIANT_ENV_FILE&quot;]
+    require File.dirname(ENV[&quot;RADIANT_ENV_FILE&quot;]) + &quot;/boot&quot;
+  when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions}
+    require &quot;#{File.expand_path(File.dirname(__FILE__) + &quot;/../../../../../&quot;)}/config/boot&quot;
+  else
+    require &quot;#{File.expand_path(File.dirname(__FILE__) + &quot;/../../../&quot;)}/config/boot&quot;
+  end
+end
+
 require 'rake'
-require 'rake/testtask'
 require 'rake/rdoctask'
+require 'rake/testtask'
 
-desc 'Default: run unit tests.'
-task :default =&gt; :test
+rspec_base = File.expand_path(RADIANT_ROOT + '/vendor/plugins/rspec/lib')
+$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base)
+require 'spec/rake/spectask'
+# require 'spec/translator'
 
-desc 'Test the reorder extension.'
-Rake::TestTask.new(:test) do |t|
-  t.libs &lt;&lt; 'lib'
-  t.pattern = 'test/**/*_test.rb'
-  t.verbose = true
+# Cleanup the RADIANT_ROOT constant so specs will load the environment
+Object.send(:remove_const, :RADIANT_ROOT)
+
+extension_root = File.expand_path(File.dirname(__FILE__))
+
+task :default =&gt; :spec
+task :stats =&gt; &quot;spec:statsetup&quot;
+
+desc &quot;Run all specs in spec directory&quot;
+Spec::Rake::SpecTask.new(:spec) do |t|
+  t.spec_opts = ['--options', &quot;\&quot;#{extension_root}/spec/spec.opts\&quot;&quot;]
+  t.spec_files = FileList['spec/**/*_spec.rb']
+end
+
+namespace :spec do
+  desc &quot;Run all specs in spec directory with RCov&quot;
+  Spec::Rake::SpecTask.new(:rcov) do |t|
+    t.spec_opts = ['--options', &quot;\&quot;#{extension_root}/spec/spec.opts\&quot;&quot;]
+    t.spec_files = FileList['spec/**/*_spec.rb']
+    t.rcov = true
+    t.rcov_opts = ['--exclude', 'spec', '--rails']
+  end
+  
+  desc &quot;Print Specdoc for all specs&quot;
+  Spec::Rake::SpecTask.new(:doc) do |t|
+    t.spec_opts = [&quot;--format&quot;, &quot;specdoc&quot;, &quot;--dry-run&quot;]
+    t.spec_files = FileList['spec/**/*_spec.rb']
+  end
+
+  [:models, :controllers, :views, :helpers].each do |sub|
+    desc &quot;Run the specs under spec/#{sub}&quot;
+    Spec::Rake::SpecTask.new(sub) do |t|
+      t.spec_opts = ['--options', &quot;\&quot;#{extension_root}/spec/spec.opts\&quot;&quot;]
+      t.spec_files = FileList[&quot;spec/#{sub}/**/*_spec.rb&quot;]
+    end
+  end
+  
+  # Hopefully no one has written their extensions in pre-0.9 style
+  # desc &quot;Translate specs from pre-0.9 to 0.9 style&quot;
+  # task :translate do
+  #   translator = ::Spec::Translator.new
+  #   dir = RAILS_ROOT + '/spec'
+  #   translator.translate(dir, dir)
+  # end
+
+  # Setup specs for stats
+  task :statsetup do
+    require 'code_statistics'
+    ::STATS_DIRECTORIES &lt;&lt; %w(Model\ specs spec/models)
+    ::STATS_DIRECTORIES &lt;&lt; %w(View\ specs spec/views)
+    ::STATS_DIRECTORIES &lt;&lt; %w(Controller\ specs spec/controllers)
+    ::STATS_DIRECTORIES &lt;&lt; %w(Helper\ specs spec/views)
+    ::CodeStatistics::TEST_TYPES &lt;&lt; &quot;Model specs&quot;
+    ::CodeStatistics::TEST_TYPES &lt;&lt; &quot;View specs&quot;
+    ::CodeStatistics::TEST_TYPES &lt;&lt; &quot;Controller specs&quot;
+    ::CodeStatistics::TEST_TYPES &lt;&lt; &quot;Helper specs&quot;
+    ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/}
+  end
+
+  namespace :db do
+    namespace :fixtures do
+      desc &quot;Load fixtures (from spec/fixtures) into the current environment's database.  Load specific fixtures using FIXTURES=x,y&quot;
+      task :load =&gt; :environment do
+        require 'active_record/fixtures'
+        ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym)
+        (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(RAILS_ROOT, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file|
+          Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*'))
+        end
+      end
+    end
+  end
 end
 
-desc 'Generate documentation for the reorder extension.'
+desc 'Generate documentation for the upcoming_events extension.'
 Rake::RDocTask.new(:rdoc) do |rdoc|
   rdoc.rdoc_dir = 'rdoc'
-  rdoc.title    = 'ReorderExtension'
+  rdoc.title    = 'UpcomingEventsExtension'
   rdoc.options &lt;&lt; '--line-numbers' &lt;&lt; '--inline-source'
   rdoc.rdoc_files.include('README')
   rdoc.rdoc_files.include('lib/**/*.rb')
 end
 
+# For extensions that are in transition
+desc 'Test the upcoming_events extension.'
+Rake::TestTask.new(:test) do |t|
+  t.libs &lt;&lt; 'lib'
+  t.pattern = 'test/**/*_test.rb'
+  t.verbose = true
+end
+
 # Load any custom rakefiles for extension
 Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f }
\ No newline at end of file</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -3,8 +3,7 @@ require File.dirname(__FILE__) + &quot;/../test_helper&quot;
 Admin::PagesController.class_eval { def rescue_action(e); raise(e); end }
 
 class PagesControllerExtensions &lt; Test::Unit::TestCase
-  fixtures :pages
-  test_helper :login, :page, :difference
+  dataset :users, :pages_with_positions
 
   def setup
     @controller = Admin::PagesController.new
@@ -14,7 +13,7 @@ class PagesControllerExtensions &lt; Test::Unit::TestCase
   end
   
   def test_move_higher
-    assert_difference pages(:documentation), :position, -1 do
+    assert_difference 'pages(:documentation).position', -1 do
       post :move_higher, :id =&gt; pages(:documentation).id
       assert_response :redirect
       assert_equal pages(:documentation).id, assigns(:page).id
@@ -23,7 +22,7 @@ class PagesControllerExtensions &lt; Test::Unit::TestCase
   end
   
   def test_move_lower
-    assert_difference pages(:documentation), :position, 1 do
+    assert_difference 'pages(:documentation).position', 1 do
       post :move_lower, :id =&gt; pages(:documentation).id
       assert_response :redirect
       assert_equal pages(:documentation).id, assigns(:page).id
@@ -42,7 +41,7 @@ class PagesControllerExtensions &lt; Test::Unit::TestCase
     post :move_to_bottom, :id =&gt; pages(:documentation).id
     assert_response :redirect
     assert_equal pages(:documentation).id, assigns(:page).id
-    assert_equal 21, assigns(:page).position
+    assert_equal 6, assigns(:page).position
   end
 
   def test_requires_login</diff>
      <filename>test/functional/pages_controller_extensions_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,16 +4,15 @@ unless defined? RADIANT_ROOT
   ENV[&quot;RAILS_ENV&quot;] = &quot;test&quot;
   require &quot;#{File.expand_path(File.dirname(__FILE__) + &quot;/../../../../&quot;)}/config/environment&quot;
 end
-require &quot;#{RADIANT_ROOT}/test/test_helper&quot;
 
+require 'dataset'
 class Test::Unit::TestCase
-  
-  # Include a helper to make testing Radius tags easier
-  test_helper :extension_tags
-  
-  # Add the fixture directory to the fixture path
-  self.fixture_path &lt;&lt; File.dirname(__FILE__) + &quot;/fixtures&quot;
-  
-  # Add more helper methods to be used by all extension tests here...
-  
-end
\ No newline at end of file
+  include Dataset
+  datasets_directory &quot;#{RADIANT_ROOT}/spec/datasets&quot;
+  Dataset::Resolver.default &lt;&lt; &quot;#{File.expand_path(File.dirname(__FILE__) + &quot;/datasets&quot;)}&quot;
+ 
+  # for login_as helper
+  def request
+    @request
+  end
+end</diff>
      <filename>test/test_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,16 @@
 require File.dirname(__FILE__) + &quot;/../test_helper&quot;
 
 class PageExtensionsTest &lt; Test::Unit::TestCase
-  fixtures :pages
-  test_helper :page
+  dataset :pages_with_positions
   
   def setup
+    Page.delete_all
+    pages.load
+    load = dataset_session.load_datasets_for(self.class)
+    extend_from_dataset_load(load)
+
     @page = Page.new
-    @pages = pages(:homepage).children
+    @pages = pages(:home).children
   end
 
   def test_should_add_acts_as_list_methods
@@ -27,47 +31,47 @@ class PageExtensionsTest &lt; Test::Unit::TestCase
   end
   
   def test_should_return_children_in_position_order
-    assert_equal pages(:homepage).children, pages(:homepage).children.sort_by(&amp;:position)
+    assert_equal pages(:home).children, pages(:home).children.sort_by(&amp;:position)
   end
   
   def test_should_swap_with_top_when_next_to_top
-    assert_equal [[1, 4], [2, 2]], order_map(@pages.to_a)[0..1]
+    assert_equal [[1, &quot;Page A&quot;], [2, &quot;Documentation&quot;]], order_map(@pages.to_a)[0..1]
     @page = pages(:documentation)
     @page.move_higher
     @pages.reload
-    assert_equal [[1, 2], [2, 4]], order_map(@pages.to_a)[0..1]
+    assert_equal [[1, &quot;Documentation&quot;], [2, &quot;Page A&quot;]], order_map(@pages.to_a)[0..1]
     assert @pages[1..-1].all?{|p| p.position.to_i != 1}
   end
 
   def test_should_swap_with_top_when_next_to_top_and_moving_to_top
-    assert_equal [[1, 4], [2, 2]], order_map(@pages.to_a)[0..1]
+    assert_equal [[1, &quot;Page A&quot;], [2, &quot;Documentation&quot;]], order_map(@pages.to_a)[0..1]
     @page = pages(:documentation)
     @page.move_to_top
     @pages.reload
-    assert_equal [[1, 2], [2, 4]], order_map(@pages.to_a)[0..1]
+    assert_equal [[1, &quot;Documentation&quot;], [2, &quot;Page A&quot;]], order_map(@pages.to_a)[0..1]
     assert @pages[1..-1].all?{|p| p.position.to_i != 1}
   end
 
   def test_should_swap_with_bottom_when_next_to_bottom
-    assert_equal [[20, 60], [21, 61]], order_map(@pages.to_a)[-2..-1]
-    @page = pages(:devtags)
+    assert_equal [[5, &quot;Page Y&quot;], [6, &quot;Page Z&quot;]], order_map(@pages.to_a)[-2..-1]
+    @page = pages(:page_y)
     @page.move_lower
     @pages.reload
-    assert_equal [[20, 61], [21, 60]], order_map(@pages.to_a)[-2..-1]
-    assert @pages[0..-2].all?{|p| p.position.to_i != 21}
+    assert_equal [[5, &quot;Page Z&quot;], [6, &quot;Page Y&quot;]], order_map(@pages.to_a)[-2..-1]
+    assert @pages[0..-2].all?{|p| p.position.to_i != 6}
   end
 
   def test_should_swap_with_bottom_when_next_to_bottom_and_moving_to_bottom
-    assert_equal [[20, 60], [21, 61]], order_map(@pages.to_a)[-2..-1]
-    @page = pages(:devtags)
+    assert_equal [[5, &quot;Page Y&quot;], [6, &quot;Page Z&quot;]], order_map(@pages.to_a)[-2..-1]
+    @page = pages(:page_y)
     @page.move_to_bottom
     @pages.reload
-    assert_equal [[20, 61], [21, 60]], order_map(@pages.to_a)[-2..-1]
-    assert @pages[0..-2].all?{|p| p.position.to_i != 21}
+    assert_equal [[5, &quot;Page Z&quot;], [6, &quot;Page Y&quot;]], order_map(@pages.to_a)[-2..-1]
+    assert @pages[0..-2].all?{|p| p.position.to_i != 6}
   end
   
   private
     def order_map(coll)
-      coll.map {|r| [r.position, r.id]}
+      coll.map {|r| [r.position, r.title]}
     end
 end</diff>
      <filename>test/unit/page_extensions_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>3bf8a97adb7d831a123c997044d94866ca8e1aed</id>
    </parent>
  </parents>
  <author>
    <name>Nick Plante</name>
    <email>nap@zerosum.org</email>
  </author>
  <url>http://github.com/radiant/radiant-reorder-extension/commit/2d40474a7ac8a9437c7a58d81c559d81ca23e891</url>
  <id>2d40474a7ac8a9437c7a58d81c559d81ca23e891</id>
  <committed-date>2009-03-07T10:00:05-08:00</committed-date>
  <authored-date>2009-03-05T07:24:54-08:00</authored-date>
  <message>update tests to use dataset plugin

Signed-off-by: Sean Cribbs &lt;seancribbs@gmail.com&gt;</message>
  <tree>d266f223d5cb49d0d369b88adb93de46948d620d</tree>
  <committer>
    <name>Sean Cribbs</name>
    <email>seancribbs@gmail.com</email>
  </committer>
</commit>
