merged cont.
[opensuse:yast-rest-service.git] / webyast / test / functional / permissions_controller_test.rb
1 #--
2 # Webyast Webservice framework
3 #
4 # Copyright (C) 2009, 2010 Novell, Inc. 
5 #   This library is free software; you can redistribute it and/or modify
6 # it only under the terms of version 2.1 of the GNU Lesser General Public
7 # License as published by the Free Software Foundation. 
8 #
9 #   This library is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 
12 # details. 
13 #
14 #   You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software 
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 #++
18
19 #
20 # Testing PermissionsController
21 #
22 require File.expand_path(File.dirname(__FILE__) + "/../test_helper")
23
24 require 'mocha'
25 require 'polkit'
26
27 class PermissionsControllerTest < ActionController::TestCase
28   fixtures :accounts
29
30 TEST_DATA_ACTIONS = <<EOF
31 org.opensuse.yast.modules.ysr.statelessregister
32 org.opensuse.yast.modules.ysr.getregistrationconfig
33 org.opensuse.yast.modules.ysr.setregistrationconfig
34 org.freedesktop.network-manager-settings.system.modify
35 org.opensuse.yast.module-manager.import
36 org.opensuse.yast.module-manager.lock
37 org.opensuse.yast.modules.yapi.users.usersget
38 org.opensuse.yast.modules.yapi.users.userget
39 org.opensuse.yast.modules.yapi.users.usermodify
40 org.opensuse.yast.modules.yapi.users.useradd
41 org.opensuse.yast.modules.yapi.users.userdelete
42 org.opensuse.yast.permissions.read
43 org.opensuse.yast.permissions.write
44 EOF
45
46 TEST_DATA_GRANT = [
47 "org.opensuse.yast.modules.ysr.statelessregister",
48 "org.opensuse.yast.modules.ysr.getregistrationconfig",
49 "org.freedesktop.network-manager-settings.system.modify",
50 "org.opensuse.yast.module-manager.import"]
51
52   def setup
53     @request.session[:account_id] = 1 #fixtures
54     Permission.any_instance.stubs(:all_actions).returns(TEST_DATA_ACTIONS)
55     PolKit.stubs(:polkit_check).with(){ |p,u| TEST_DATA_GRANT.include? p.to_s}.returns(:yes)
56     PolKit.stubs(:polkit_check).with(){ |p,u| !TEST_DATA_GRANT.include?(p.to_s)}.returns(:no)
57   end
58   
59 #TODO more tests (not enough permissions etc.)
60
61   test "permissions access index xml" do
62     mime = Mime::XML
63     @request.accept = mime.to_s
64     get :show, :user_id => "test_user", :format => 'xml'
65     assert_response :success
66     assert_equal mime.to_s, @response.content_type
67   end
68
69   test "permissions access index json" do
70     mime = Mime::JSON
71     @request.accept = mime.to_s
72     get :show, :user_id => "test_user", :format => 'json'
73     assert_response :success
74     assert_equal mime.to_s, @response.content_type
75   end
76
77 end