From f33e035168fb28ebf7a0c3651412dc9c57355a4f Mon Sep 17 00:00:00 2001 From: MoisesMachado Date: Mon, 23 Jul 2007 22:39:07 +0000 Subject: [PATCH] ActionItem4: integration test of tags management added --- app/helpers/manage_tags_helper.rb | 2 ++ app/views/manage_tags/_a_tag.rhtml | 1 - app/views/manage_tags/_form.rhtml | 2 +- app/views/manage_tags/list.rhtml | 3 +-- test/integration/manage_tags_test.rb | 29 +++++++++++++++++++++++++++++ test/unit/extended_tag_test.rb | 37 +++++++++++++++++++++++++++++++++++++ 6 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 app/helpers/manage_tags_helper.rb create mode 100644 test/integration/manage_tags_test.rb create mode 100644 test/unit/extended_tag_test.rb diff --git a/app/helpers/manage_tags_helper.rb b/app/helpers/manage_tags_helper.rb new file mode 100644 index 0000000..0ca0994 --- /dev/null +++ b/app/helpers/manage_tags_helper.rb @@ -0,0 +1,2 @@ +module ManageTagsHelper +end diff --git a/app/views/manage_tags/_a_tag.rhtml b/app/views/manage_tags/_a_tag.rhtml index 6c57455..b81ce6d 100644 --- a/app/views/manage_tags/_a_tag.rhtml +++ b/app/views/manage_tags/_a_tag.rhtml @@ -1,5 +1,4 @@
  • -<%= a_tag.id %> <%= a_tag.name %> <%= link_to _('Edit'), {:action => 'edit', :id => a_tag } %> <%= link_to _('Destroy'), {:action => 'destroy', :id => a_tag} %> diff --git a/app/views/manage_tags/_form.rhtml b/app/views/manage_tags/_form.rhtml index 3e36b02..7b6db78 100644 --- a/app/views/manage_tags/_form.rhtml +++ b/app/views/manage_tags/_form.rhtml @@ -1,3 +1,3 @@ Name: <%= text_field 'tag', 'name' %>
    -Parent tag: <%= select_tag 'tag[parent_id]', [''] + @parent_tags.map {|pt|"'} %>
    +Parent tag: <%= select("tag", "parent_id", @parent_tags.collect {|p| [ p.name, p.id ] }, { :include_blank => true }) %>
    Pending: <%= check_box 'tag', 'pending' %>
    diff --git a/app/views/manage_tags/list.rhtml b/app/views/manage_tags/list.rhtml index f11310c..6da790a 100644 --- a/app/views/manage_tags/list.rhtml +++ b/app/views/manage_tags/list.rhtml @@ -1,12 +1,11 @@

    <%= _("Listing tags") %>

    -<%= flash[:notice] %> -

    <%= _('Pending Tags') %>

    + diff --git a/test/integration/manage_tags_test.rb b/test/integration/manage_tags_test.rb new file mode 100644 index 0000000..ca0aa97 --- /dev/null +++ b/test/integration/manage_tags_test.rb @@ -0,0 +1,29 @@ +require "#{File.dirname(__FILE__)}/../test_helper" + +class ManageTagsTest < ActionController::IntegrationTest + fixtures :tags, :profiles, :users, :virtual_communities, :domains, :boxes, :blocks + + def test_tags_create_edit_destroy + get '/admin/manage_tags' + assert_response :redirect + + follow_redirect! + assert_response :success + assert_equal '/admin/manage_tags/list', path + assert_tag :tag => 'a', :attributes => {:href => '/admin/manage_tags/new'} + + get '/admin/manage_tags/new' + assert_response :success + assert_tag :tag => 'input', :attributes => {:name => 'tag[name]'} + assert_tag :tag => 'select', :attributes => {:name => 'tag[parent_id]'} + assert_tag :tag => 'input', :attributes => {:name => 'tag[pending]'} + + post '/admin/manage_tags/create', :tag => { 'name' => 'new_tag', 'pending' => 'false', 'parent_id' => '0'} + assert_response :redirect + + follow_redirect! + assert_response :success + assert_equal '/admin/manage_tags/list', path + end + +end diff --git a/test/unit/extended_tag_test.rb b/test/unit/extended_tag_test.rb new file mode 100644 index 0000000..25577e8 --- /dev/null +++ b/test/unit/extended_tag_test.rb @@ -0,0 +1,37 @@ +require File.dirname(__FILE__) + '/../test_helper' +require 'extended_tag.rb' + +class UserTest < Test::Unit::TestCase + + def test_find_without_pendings + tag1 = Tag.create(:name => 'pending_tag', :pending => true) + tag2 = Tag.create(:name => 'approved_tag', :pending => false) + assert_nothing_raised {Tag.find(tag2.id)} + assert_raise(ActiveRecord::RecordNotFound) {Tag.find(tag1.id)} + end + + def test_find_pendings + tag1 = Tag.create(:name => 'pending_tag', :pending => true) + tag2 = Tag.create(:name => 'approved_tag', :pending => false) + assert Tag.find_pendings.include?(tag1) + assert (not Tag.find_pendings.include?(tag2)) + end + + def test_parent_candidates + tag1 = Tag.create(:name => 'parent_tag') + tag2 = Tag.create(:name => 'child_tag', :parent => tag1) + assert ( not tag1.parent_candidates.include?(tag2) ) + assert tag2.parent_candidates.include?(tag1) + end + + def test_descendents + tag1 = Tag.create(:name => 'parent_tag') + tag2 = Tag.create(:name => 'child_tag', :parent => tag1) + tag3 = Tag.create(:name => 'grand_tag', :parent => tag2) + assert (not tag2.descendents.include?(tag1)) + assert (not tag1.descendents.include?(tag1)) + assert tag1.descendents.include?(tag2) + assert tag1.descendents.include?(tag3) + end + +end -- libgit2 0.21.2