This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "YaST web service".
The branch, master has been updated
via eb85d3bbcbee0cf46d4c08812369a09d91775b4a (commit)
via 697c19aa0495a8771483851516d1624c7d5e0883 (commit)
via 2451d9d20f6fa574861309ce70a10323a35cf8c7 (commit)
from e314f09ab1b3dde10d0b434ccf5312e53199ffe1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit eb85d3bbcbee0cf46d4c08812369a09d91775b4a
Author: Josef Reidinger
Date: Tue Jun 30 10:19:21 2009 +0200
complete testsuite
commit 697c19aa0495a8771483851516d1624c7d5e0883
Merge: 2451d9d20f6fa574861309ce70a10323a35cf8c7 e314f09ab1b3dde10d0b434ccf5312e53199ffe1
Author: Josef Reidinger
Date: Tue Jun 30 10:19:08 2009 +0200
Merge branch 'master' of git@git.opensuse.org:projects/yast/rest-service
commit 2451d9d20f6fa574861309ce70a10323a35cf8c7
Author: Josef Reidinger
Date: Mon Jun 29 15:05:37 2009 +0200
improve test suite
-----------------------------------------------------------------------
Summary of changes and diff:
plugins/language/Rakefile | 21 ----
.../app/controllers/language_controller.rb | 6 +-
.../test/functional/language_controller_test.rb | 97 +++++++++++++++-----
plugins/language/test/unit/language_test.rb | 66 ++++++++++---
4 files changed, 128 insertions(+), 62 deletions(-)
diff --git a/plugins/language/Rakefile b/plugins/language/Rakefile
index fc62167..aac07dc 100644
--- a/plugins/language/Rakefile
+++ b/plugins/language/Rakefile
@@ -9,15 +9,6 @@ require 'tasks/rails'
desc 'Default: run unit tests.'
task :default => :test
-desc 'Test the language plugin.'
-Rake::TestTask.new(:test) do |t|
- t.libs << 'lib'
- t.libs << 'test'
- t.libs << RailsParent.parent
- t.pattern = 'test/**/*_test.rb'
- t.verbose = true
-end
-
desc 'Generate documentation for the language plugin.'
Rake::RDocTask.new(:rdoc) do |rdoc|
rdoc.rdoc_dir = 'rdoc'
@@ -36,15 +27,3 @@ Rake::PackageTask.new('www', :noversion) do |p|
p.package_files.exclude('package')
p.package_files.exclude('nbproject')
end
-
-desc "install policies"
-task :install do |t|
- Dir.glob("**/*.policy").each do |policy|
- sudo "cp #{policy} /usr/share/PolicyKit/policy"
- end
-end
-
-def sudo(cmd)
- puts "#{cmd}"
- %x[sudo -p "Password: " #{cmd}]
-end
diff --git a/plugins/language/app/controllers/language_controller.rb b/plugins/language/app/controllers/language_controller.rb
index 8d533ea..c4729eb 100644
--- a/plugins/language/app/controllers/language_controller.rb
+++ b/plugins/language/app/controllers/language_controller.rb
@@ -3,7 +3,7 @@ include ApplicationHelper
class LanguageController < ApplicationController
before_filter :login_required
-
+ attr_reader :language
#--------------------------------------------------------------------------------
#
# actions
@@ -11,12 +11,12 @@ class LanguageController < ApplicationController
#--------------------------------------------------------------------------------
def update
-
- @language = Language.new
+
if params.has_key?(:language)
unless permission_check("org.opensuse.yast.modules.yapi.language.write")
render ErrorResult.error(403, 1, "no permission") and return
end
+ @language = Language.new
@language.language = params[:language][:current]
@language.utf8 = params[:language][:utf8]
@language.rootlocale = params[:language][:rootlocale]
diff --git a/plugins/language/test/functional/language_controller_test.rb b/plugins/language/test/functional/language_controller_test.rb
index 3804ff4..25a931a 100644
--- a/plugins/language/test/functional/language_controller_test.rb
+++ b/plugins/language/test/functional/language_controller_test.rb
@@ -11,28 +11,79 @@ class LanguageControllerTest < ActionController::TestCase
@request = ActionController::TestRequest.new
# http://railsforum.com/viewtopic.php?id=1719
@request.session[:account_id] = 1 # defined in fixtures
- YastService.any_instance.stubs(:initialize)
- YastService.any_instance.stubs(:execute).with(["YaPI::LANGUAGE::GetCurrentLanguage"]).returns("en_US")
- end
-
-# TODO write tests
-# def test_access_show
-# get :show
-# assert_response :success
-# end
-#
-# def test_access_show_xml
-# mime = Mime::XML
-# @request.accept = mime.to_s
-# get :show, :format => :xml
-# assert_equal mime.to_s, @response.content_type
-# end
-#
-# def test_access_show_json
-# mime = Mime::JSON
-# @request.accept = mime.to_s
-# get :show, :format => :json
-# assert_equal mime.to_s, @response.content_type
-# end
+ end
+
+ # TODO write tests
+ def test_access_show
+ #mock model to test only controller
+ Language.any_instance.stubs(:read)
+ get :show
+ assert_response :success
+ end
+
+ def test_access_denied
+ #mock model to test only controller
+ Language.any_instance.stubs(:read)
+ @controller.stubs(:permission_check).returns(false);
+ get :show
+ assert_response :forbidden
+ end
+
+ def test_access_show_xml
+ Language.any_instance.stubs(:read)
+ mime = Mime::XML
+ @request.accept = mime.to_s
+ get :show, :format => :xml
+ assert_equal mime.to_s, @response.content_type
+ end
+
+ def test_access_show_json
+ Language.any_instance.stubs(:read)
+ mime = Mime::JSON
+ @request.accept = mime.to_s
+ get :show, :format => :json
+ assert_equal mime.to_s, @response.content_type
+ end
+
+ Data = {:language => {
+ :current => "cs_CZ",
+ :utf8 => "true",
+ :rootlocale => "false"
+ }}
+
+ def test_update
+ Language.any_instance.stubs(:save)
+ put :update, Data
+ check_update_result
+ end
+
+ def test_create
+ Language.any_instance.stubs(:save)
+ put :create, Data
+ check_update_result
+ end
+ def check_update_result
+ assert_response :success
+ assert_equal @controller.language.language, Data[:language][:current]
+ assert_equal @controller.language.utf8, Data[:language][:utf8]
+ assert_equal @controller.language.rootlocale, Data[:language][:rootlocale]
+ end
+
+ def test_update_noparams
+ Language.any_instance.stubs(:save)
+ put :update
+ assert_response :missing
+ end
+
+ def test_update_noperm
+ #ensure that nothink is saved
+ Language.any_instance.expects(:save).never
+
+ @controller.stubs(:permission_check).returns(false);
+
+ put :update, Data
+
+ assert_response :forbidden
+ end
end
diff --git a/plugins/language/test/unit/language_test.rb b/plugins/language/test/unit/language_test.rb
index 7932320..861bd02 100644
--- a/plugins/language/test/unit/language_test.rb
+++ b/plugins/language/test/unit/language_test.rb
@@ -1,7 +1,15 @@
require 'test_helper'
+
+
class LanguageTest < ActiveSupport::TestCase
+ Test_Lang = {
+ "test" => ["testing","la testing",".utf","la t"],
+ "a" => ["b","b","b","b"],
+ "c" => ["d","d","d","d"]
+ }
+
def read_arguments
return {
"current"=> "true",
@@ -16,7 +24,7 @@ class LanguageTest < ActiveSupport::TestCase
"current" => "en_US",
"utf8" => "true",
"rootlang" => "ctype",
- "languages" => {"test" => "testing","a" => "b","c" => "d"}
+ "languages" => Test_Lang
}
end
@@ -28,39 +36,67 @@ class LanguageTest < ActiveSupport::TestCase
}
end
- def setup
-
- @language = Language.new
-
-
-
-
+ def setup
+ @language = Language.new
end
def test_getter
YastService.stubs(:Call).with("YaPI::LANGUAGE::Read",read_arguments).returns(read_response)
-# debugger
@language.read
assert_equal("en_US", @language.language)
assert_equal("ctype", @language.rootlocale)
assert_equal("true", @language.utf8)
- languages = {
- "test" => "testing",
- "a" => "b",
- "c" => "d"
- }
- assert_equal(languages,@language.available)
+ assert_equal(Test_Lang,@language.available)
end
def test_setter
YastService.stubs(:Call).with("YaPI::LANGUAGE::Write",write_arguments).returns(true)
+
@language.language = "de_DE"
@language.rootlocale = "false"
@language.utf8 = "false"
@language.save
end
+ def test_xml
+ #inject Language to set available for direct testing
+ def @language.available=(val)
+ @@available=val
+ end
+
+ @language.language = "de_DE"
+ @language.rootlocale = "false"
+ @language.utf8 = "false"
+ @language.available = Test_Lang
+
+ response = Hash.from_xml(@language.to_xml)
+ response = response["language"]
+
+ assert_equal("de_DE", response["current"])
+ assert_equal("false", response["utf8"])
+ assert_equal("false", response["rootlocale"])
+ lang_reponse = [
+ {"id" => "test", "name" => "testing" },
+ {"id" => "a", "name" => "b" },
+ {"id" => "c", "name" => "d" }
+ ]
+ assert_equal(lang_reponse.sort { |a,b| a["id"] <=> b["id"] },
+ response["available"].sort { |a,b| a["id"] <=> b["id"] })
+ end
+
+ def test_json
+ def @language.available=(val)
+ @@available=val
+ end
+
+ @language.language = "de_DE"
+ @language.rootlocale = "false"
+ @language.utf8 = "false"
+ @language.available = Test_Lang
+
+ assert_not_nil(@language.to_json)
+ end
end
hooks/post-receive
--
YaST web service
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org