merged cont.
[opensuse:yast-rest-service.git] / webyast / test / functional / resources_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 # test/functional/resources_controller_test.rb
21 #
22 # This tests proper returns for resource inspection
23 #
24
25 class TestPlugin
26   attr_reader :directory
27   def initialize path
28     @directory = File.join(File.dirname(__FILE__), "..", path)
29   end
30 end
31
32 unless defined? RESOURCE_REGISTRATION_TESTING
33   RESOURCE_REGISTRATION_TESTING = true # prevent plugin registration in environment.rb
34 end
35 require File.join(File.dirname(__FILE__), "..", "test_helper")
36 require File.join(File.dirname(__FILE__), "..", "..", "lib", "resource_registration")
37
38 class ResourcesControllerTest < ActionController::TestCase
39
40   def setup
41     # set up test routing
42     ResourceRegistration.reset
43     plugin = TestPlugin.new "resource_fixtures/good"
44     ResourceRegistration.register_plugin plugin
45     ResourceRegistration.route ResourceRegistration.resources
46   end
47   
48   test "resources access root" do
49     get :index
50     assert_response :success
51   end
52   
53   test "resources show with interface" do
54     get :show, :id => "org-opensuse-yast-modules-yapi-time"
55     assert_response :success
56   end
57   
58   test "resources show with unknown interface" do
59     get :show, :id => "org-opensuse-yast-modules-yapi-bad-time"
60     assert_response :missing
61   end
62
63   test "resources output xml format" do
64     get :index, :format => "xml"
65     assert_response :success
66     assert @response.headers['Content-Type'] =~ %r{application/xml}
67   end
68   
69   test "resources output html format" do
70     get :index, :format => "html"
71     assert_response :success
72     assert @response.headers['Content-Type'] =~ %r{text/html}
73   end
74   
75   test "resources by interfaces query" do
76     ResourceRegistration.resources.each do |interface,implementations|
77       get :show, "id" => interface.tr('.','-')
78       assert_response :success
79     end
80   end  
81   
82 end