Skip to content

Commit

Permalink
[api] webui tests adapted
Browse files Browse the repository at this point in the history
  • Loading branch information
ancorgs authored and coolo committed Oct 18, 2013
1 parent 91c9e09 commit b3de9ee
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 65 deletions.
92 changes: 92 additions & 0 deletions src/api/test/functional/webui/owner_search_test.rb
@@ -0,0 +1,92 @@
# -*- coding: utf-8 -*-

require 'test_helper'

class Webui::OwnerSearchTest < Webui::IntegrationTest

def setup
@attrib = Attrib.find_or_create_by!(attrib_type: AttribType.where(name: "OwnerRootProject").first,
project: Project.where(name: "home:Iggy").first)
end

def visit_owner_search
visit webui_engine.url_for(controller: '/webui/search', action: :owner, only_path: true)
end

def search(options)
validate_search_page
find("#advanced_link").click

options[:flags] ||= []
options[:expect] ||= :success

fill_in "search_input", with: options[:text]
options[:flags].each do |f|
find("input[id='#{f}']").set(true)
end

click_button "search_button"

if options[:expect] == :no_results
flash_message.must_equal "Your search did not return any results."
flash_message_type.must_equal :info
assert search_results.empty?
end
end

def validate_search_page
page.must_have_text "Search for people responsible"
page.must_have_text "Advanced"
end

def search_results
raw_results = page.all("div.search_result")
raw_results.collect do |row|
{
:project => (row.find("a.project").text rescue nil),
:package => (row.find("a.package").text rescue nil),
:owners => (row.find("p").text rescue nil)
}
end
end

test "empty_owner_search" do
visit_owner_search
search text: "does_not_exist", expect: :no_results
end

test "basic_owner_search_" do
visit_owner_search
search text: "package", expect: "success"
result = search_results.first
assert result[:project] == "home:Iggy"
assert result[:package] == "TestPack"
assert result[:owners].include? "(fred) as maintainer"
assert result[:owners].include? "(Iggy) as maintainer"
assert result[:owners].include? "(Iggy) as bugowner"
end

test "owner_search_with_devel" do
# set devel package (this one has another devel package in home:coolo:test)
pkg = Package.find_by_project_and_name 'home:Iggy', 'TestPack'
pkg.develpackage = Package.find_by_project_and_name 'kde4', 'kdelibs'
pkg.save

visit_owner_search

# Search including devel projects
search text: "package", flags: [:devel], expect: "success"
result = search_results.first
assert result[:project] == "home:coolo:test"

# search again, but ignore devel package
search text: "package", flags: [:nodevel], expect: "success"
result = search_results.first
assert result[:project] == "home:Iggy"
assert result[:package] == "TestPack"

# reset devel package setting again
pkg.develpackage = nil
pkg.save
end
end
4 changes: 2 additions & 2 deletions src/api/test/functional/webui/search_controller_test.rb
Expand Up @@ -5,7 +5,7 @@
class Webui::SearchControllerTest < Webui::IntegrationTest

def setup
Webui::ApiDetails.prepare_search
OBSApi::TestSphinx.ensure
end

def validate_search_page
Expand Down Expand Up @@ -106,7 +106,7 @@ def search_results
fill_in 'search', with: 'basedistro3'
page.evaluate_script("$('#global-search-form').get(0).submit()")
validate_search_page
page.must_have_text(/Base.* distro without update/)
page.must_have_text(/Base.* distro without update project/)
end

test "search_by_baseurl" do
Expand Down
63 changes: 0 additions & 63 deletions src/api/test/functional/webui_controller_test.rb
Expand Up @@ -9,69 +9,6 @@ def setup
wait_for_scheduler_start
end

def test_search_owner
login_king

get '/webui/owners'
assert_response 400
assert_xml_tag :tag => 'status', :attributes => { :code => 'missing_parameter'}

# must be after first search controller call or backend might not be started on single test case runs
wait_for_publisher()

get "/webui/owners?binary='package'"
assert_response 400
assert_xml_tag :tag => 'status', :attributes => { :code => 'attribute_not_set'}

get "/webui/owners?binary='package'&attribute='OBS:does_not_exist'"
assert_response 404
assert_xml_tag :tag => 'status', :attributes => { :code => 'unknown_attribute_type'}

post '/source/home:Iggy/_attribute', "<attributes><attribute namespace='OBS' name='OwnerRootProject' /></attributes>"
assert_response :success

get '/webui/owners?binary=DOES_NOT_EXIST'
assert_response :success
assert_xml_tag :tag => 'collection', :children => { :count => 0 }

get '/webui/owners?binary=package'
assert_response :success
assert_xml_tag :tag => 'owner', :attributes => { :rootproject => 'home:Iggy', :project => 'home:Iggy', :package => 'TestPack'}

get '/webui/owners?binary=package'
assert_response :success
assert_xml_tag :parent => { :tag => 'owner', :attributes => { :rootproject => 'home:Iggy', :project => 'home:Iggy', :package => 'TestPack'} },
:tag => 'filter', :content => 'bugowners'
assert_xml_tag :parent => { :tag => 'owner', :attributes => { :rootproject => 'home:Iggy', :project => 'home:Iggy', :package => 'TestPack'} },
:tag => 'filter', :content => 'maintainers'

# set devel package (this one has another devel package in home:coolo:test)
pkg = Package.find_by_project_and_name 'home:Iggy', 'TestPack'
pkg.develpackage = Package.find_by_project_and_name 'kde4', 'kdelibs'
pkg.save

# include devel package
get '/webui/owners?binary=package'
assert_response :success
assert_xml_tag :tag => 'owner', :attributes => { :project => 'home:coolo:test'}

# search again, but ignore devel package
get '/webui/owners?binary=package&devel=false'
assert_response :success
assert_xml_tag :tag => 'owner', :attributes => { :rootproject => 'home:Iggy', :project => 'home:Iggy', :package => 'TestPack'}

get '/webui/owners?binary=package&limit=-1'
assert_response :success
assert_xml_tag :tag => 'owner', :attributes => { :rootproject => 'home:Iggy', :project => 'home:coolo:test'}

# reset devel package setting again
pkg.develpackage = nil
pkg.save
# cleanup
delete '/source/home:Iggy/_attribute/OBS:OwnerRootProject'
assert_response :success
end

test 'package rdiff' do
login_Iggy

Expand Down

0 comments on commit b3de9ee

Please sign in to comment.