Revision 9c0e127b
Added by Paul Kelly about 14 years ago
- ID 9c0e127b1d42b7243403dd49d739cf8e97baa60b
test/functional/hosts_controller_test.rb | ||
---|---|---|
class HostsControllerTest < ActionController::TestCase
|
||
setup :initialize_host
|
||
|
||
def test_index
|
||
get :index
|
||
assert_template 'index'
|
||
end
|
||
|
||
def test_show
|
||
get :show, :id => Host.first
|
||
get :show, {:id => Host.first}, set_session_user
|
||
assert_template 'show'
|
||
end
|
||
|
||
def test_new
|
||
get :new
|
||
assert_template 'new'
|
||
end
|
||
|
||
def test_create_invalid
|
||
Host.any_instance.stubs(:valid?).returns(false)
|
||
post :create
|
||
post :create, {}, set_session_user
|
||
assert_template 'new'
|
||
end
|
||
|
||
def test_create_valid
|
||
Host.any_instance.stubs(:valid?).returns(true)
|
||
post :create, :host => {:name => "test"}
|
||
assert_redirected_to host_url(assigns(:host))
|
||
post :create, {:host => {:name => "test"}}, set_session_user
|
||
assert_redirected_to host_url(assigns('host'))
|
||
end
|
||
|
||
def test_edit
|
||
get :edit, :id => Host.first
|
||
test "should get index" do
|
||
get :index, {}, set_session_user
|
||
assert_response :success
|
||
assert_template 'index'
|
||
end
|
||
|
||
test "should get new" do
|
||
get :new, {}, set_session_user
|
||
assert_response :success
|
||
assert_template 'new'
|
||
end
|
||
|
||
test "should create new host" do
|
||
assert_difference 'Host.count' do
|
||
post :create, { :commit => "Create",
|
||
:host => {:name => "myotherfullhost",
|
||
:mac => "aabbecddee00",
|
||
:ip => "123.05.02.25",
|
||
:domain => Domain.find_or_create_by_name("othercompany.com"),
|
||
:operatingsystem => Operatingsystem.first,
|
||
:architecture => Architecture.first,
|
||
:environment => Environment.first,
|
||
:disk => "empty partition"
|
||
}
|
||
}, set_session_user
|
||
end
|
||
end
|
||
|
||
test "should get edit" do
|
||
get :edit, {:id => @host.id}, set_session_user
|
||
assert_response :success
|
||
assert_template 'edit'
|
||
end
|
||
|
||
test "should update host" do
|
||
put :update, { :commit => "Update", :id => @host.id, :host => {:disk => "ntfs"} }, set_session_user
|
||
@host = Host.find_by_id(@host.id)
|
||
assert_equal @host.disk, "ntfs"
|
||
end
|
||
|
||
def test_update_invalid
|
||
Host.any_instance.stubs(:valid?).returns(false)
|
||
put :update, :id => Host.first
|
||
put :update, {:id => Host.first}, set_session_user
|
||
assert_template 'edit'
|
||
end
|
||
|
||
def test_update_valid
|
||
Host.any_instance.stubs(:valid?).returns(true)
|
||
put :update, :id => Host.first
|
||
put :update, {:id => Host.first}, set_session_user
|
||
assert_redirected_to host_url(assigns(:host))
|
||
end
|
||
|
||
def test_destroy
|
||
host = Host.first
|
||
delete :destroy, :id => host
|
||
delete :destroy, {:id => host}, set_session_user
|
||
assert_redirected_to hosts_url
|
||
assert !Host.exists?(host.id)
|
||
end
|
||
test "externalNodes should render 404 when no params are given" do
|
||
get :externalNodes
|
||
|
||
test "externalNodes should render 404 when no params are given" do
|
||
get :externalNodes, {}, set_session_user
|
||
assert_response :missing
|
||
assert_template :text => '404 Not Found'
|
||
end
|
||
|
||
test "externalNodes should render correctly when id is given" do
|
||
get :externalNodes, :id => @host.id
|
||
get :externalNodes, {:id => @host.id}, set_session_user
|
||
assert_response :success
|
||
assert_template :text => @host.info.to_yaml.gsub("\n","<br>")
|
||
end
|
||
|
||
test "externalNodes should render correctly when name is given" do
|
||
get :externalNodes, :name => @host.name
|
||
get :externalNodes, {:name => @host.name}, set_session_user
|
||
assert_response :success
|
||
assert_template :text => @host.info.to_yaml.gsub("\n","<br>")
|
||
end
|
||
|
||
test "externalNodes should render yml request correctly" do
|
||
get :externalNodes, :id => @host.id, :format => "yml"
|
||
get :externalNodes, {:id => @host.id, :format => "yml"}, set_session_user
|
||
assert_response :success
|
||
assert_template :text => @host.info.to_yaml
|
||
end
|
||
... | ... | |
mock(Host).find(@host.id.to_s) {@host}
|
||
@request.env['HTTP_REFERER'] = hosts_path
|
||
|
||
get :setBuild, {:id => @host.id}
|
||
get :setBuild, {:id => @host.id}, set_session_user
|
||
assert_response :found
|
||
assert_redirected_to hosts_path
|
||
assert_not_nil flash[:foreman_notice]
|
||
... | ... | |
mock(Host).find(@host.id.to_s) {@host}
|
||
@request.env['HTTP_REFERER'] = hosts_path
|
||
|
||
get :setBuild, :id => @host.id
|
||
get :setBuild, {:id => @host.id}, set_session_user
|
||
assert_response :found
|
||
assert_redirected_to hosts_path
|
||
assert_not_nil flash[:foreman_error]
|
||
... | ... | |
end
|
||
|
||
test "rrdreport should print error message if host has no last_report" do
|
||
get :rrdreport, :id => @host.id
|
||
get :rrdreport, {:id => @host.id}, set_session_user
|
||
assert_response :success
|
||
assert_template :text => "Sorry, no graphs for this host"
|
||
end
|
||
... | ... | |
assert @host.save!
|
||
SETTINGS[:rrd_report_url] = "/some/url"
|
||
|
||
get :rrdreport, :id => @host.id
|
||
get :rrdreport, {:id => @host.id}, set_session_user
|
||
assert_response :success
|
||
assert_template :partial => "_rrdreport"
|
||
end
|
||
|
||
test "report should redirect to host's last report" do
|
||
get :report, :id => @host.id
|
||
get :report, {:id => @host.id}, set_session_user
|
||
assert_response :found
|
||
assert_redirected_to :controller => "reports", :action => "show", :id => @host.id
|
||
end
|
||
|
||
test "query in .yml format should return host.to_yml" do
|
||
get :query, :format => "yml"
|
||
get :query, {:format => "yml"}, set_session_user
|
||
assert_template :text => @host.to_yaml
|
||
end
|
||
|
Also available in: Unified diff
Fixes #170 - implement usergroups
Added migration
Added tests
Added MVC files
Added the routes as well
Added the program logic and additional views
Added RESTful actions for update and create
Added validations to ensure that usergroup.name and user.login do not collide
Added "recipients" method to users and usergroups. This returns a list of addresses.
Usergroup#recipients will follow all nested usergroups avoiding any loops and
return only unique addresses
Fixes #73 - Add usergroup support to hosts
Fixes #244 - Remove ActiveScaffold from the usergroup pages
and finally - added owners to host edit page and other whitespaces and
mods by ohad