1 require File.dirname(__FILE__) + '/../test_helper'
3 class AdminUITest < Test::Unit::TestCase
8 add_tabs "First", "Second", "Third"
9 @admin_user = users(:admin)
10 @developer_user = users(:developer)
11 @normal_user = users(:existing)
15 assert Radiant::AdminUI.included_modules.include?(Simpleton)
16 assert Radiant::AdminUI::TabSet.included_modules.include?(Enumerable)
20 assert_kind_of Radiant::AdminUI::TabSet, admin.tabs
24 assert_equal "Second", admin.tabs["Second"].name
25 assert_equal "Third", admin.tabs["Third"].name
29 admin.tabs.add "Test", "/test"
30 assert_equal "Test", admin.tabs[3].name
32 admin.tabs.add "After", "/after", :after => "Second"
33 assert_equal "After", admin.tabs[2].name
35 admin.tabs.add "Before", "/before", :before => "Second"
36 assert_equal "Before", admin.tabs[1].name
38 assert_equal 6, admin.tabs.size
41 def test_removing_tabs
42 admin.tabs.remove "Second"
43 assert_equal 2, admin.tabs.size
44 assert_equal "Third", admin.tabs[1].name
47 def test_cannot_add_tab_with_the_same_name
48 assert_raises(Radiant::AdminUI::DuplicateTabNameError) { admin.tabs.add "First", "/first" }
51 def test_tab_visibility
52 admin.tabs.add "Admin and Dev Tab", "/tab", :visibility => [:admin, :developer]
53 tab = admin.tabs["Admin and Dev Tab"]
55 assert_equal [:admin, :developer], tab.visibility
56 assert_equal false, tab.shown_for?(@normal_user)
57 assert_equal true, tab.shown_for?(@developer_user)
58 assert_equal true, tab.shown_for?(@admin_user)
61 def test_tab_visibility__for
62 admin.tabs.add "Developer Tab", "/developer", :for => :developer
63 tab = admin.tabs["Developer Tab"]
65 assert_equal [:developer], tab.visibility
66 assert_equal false, tab.shown_for?(@normal_user)
67 assert_equal true, tab.shown_for?(@developer_user)
68 assert_equal false, tab.shown_for?(@admin_user)
71 def test_tab_visibility__everyone
72 admin.tabs.add "Everyone Tab", "/developer"
73 tab = admin.tabs["Everyone Tab"]
75 assert_equal [:all], tab.visibility
76 assert_equal true, tab.shown_for?(@normal_user)
77 assert_equal true, tab.shown_for?(@developer_user)
78 assert_equal true, tab.shown_for?(@admin_user)
84 @admin ||= Radiant::AdminUI.new
89 admin.tabs.add name, "/#{name.underscore}"