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] %>
-
<%= render :partial => 'a_tag', :collection => @tags %>
<%= _('Pending Tags') %>
+
<%= render :partial => 'a_tag', :collection => @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