Fixed issue #2046 - Special characters get HTML encoded when displayed in overviews. Improved PR #2049.
This commit is contained in:
parent
947d2bcc25
commit
82acddc420
4 changed files with 147 additions and 1 deletions
|
@ -1,3 +1,3 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="<%= @columnsLength %>"><b><%= @groupByName %><% if @groupByCount:%> (<%= @groupByCount %>)<% end %></b></td>
|
<td colspan="<%= @columnsLength %>"><b><%- @groupByName %><% if @groupByCount:%> (<%= @groupByCount %>)<% end %></b></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -37,6 +37,7 @@ if [ "$LEVEL" == '1' ]; then
|
||||||
rm test/browser/agent_ticket_macro_test.rb
|
rm test/browser/agent_ticket_macro_test.rb
|
||||||
rm test/browser/agent_ticket_merge_test.rb
|
rm test/browser/agent_ticket_merge_test.rb
|
||||||
rm test/browser/agent_ticket_online_notification_test.rb
|
rm test/browser/agent_ticket_online_notification_test.rb
|
||||||
|
rm test/browser/agent_ticket_overview_group_by_organization_test.rb
|
||||||
rm test/browser/agent_ticket_overview_level0_test.rb
|
rm test/browser/agent_ticket_overview_level0_test.rb
|
||||||
rm test/browser/agent_ticket_overview_level1_test.rb
|
rm test/browser/agent_ticket_overview_level1_test.rb
|
||||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||||
|
@ -111,6 +112,7 @@ elif [ "$LEVEL" == '2' ]; then
|
||||||
rm test/browser/agent_ticket_macro_test.rb
|
rm test/browser/agent_ticket_macro_test.rb
|
||||||
# test/browser/agent_ticket_merge_test.rb
|
# test/browser/agent_ticket_merge_test.rb
|
||||||
rm test/browser/agent_ticket_online_notification_test.rb
|
rm test/browser/agent_ticket_online_notification_test.rb
|
||||||
|
rm test/browser/agent_ticket_overview_group_by_organization_test.rb
|
||||||
rm test/browser/agent_ticket_overview_level0_test.rb
|
rm test/browser/agent_ticket_overview_level0_test.rb
|
||||||
rm test/browser/agent_ticket_overview_level1_test.rb
|
rm test/browser/agent_ticket_overview_level1_test.rb
|
||||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||||
|
@ -185,6 +187,7 @@ elif [ "$LEVEL" == '3' ]; then
|
||||||
# test/browser/agent_ticket_macro_test.rb
|
# test/browser/agent_ticket_macro_test.rb
|
||||||
rm test/browser/agent_ticket_merge_test.rb
|
rm test/browser/agent_ticket_merge_test.rb
|
||||||
rm test/browser/agent_ticket_online_notification_test.rb
|
rm test/browser/agent_ticket_online_notification_test.rb
|
||||||
|
rm test/browser/agent_ticket_overview_group_by_organization_test.rb
|
||||||
rm test/browser/agent_ticket_overview_level0_test.rb
|
rm test/browser/agent_ticket_overview_level0_test.rb
|
||||||
rm test/browser/agent_ticket_overview_level1_test.rb
|
rm test/browser/agent_ticket_overview_level1_test.rb
|
||||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||||
|
@ -259,6 +262,7 @@ elif [ "$LEVEL" == '4' ]; then
|
||||||
rm test/browser/agent_ticket_macro_test.rb
|
rm test/browser/agent_ticket_macro_test.rb
|
||||||
rm test/browser/agent_ticket_merge_test.rb
|
rm test/browser/agent_ticket_merge_test.rb
|
||||||
# test/browser/agent_ticket_online_notification_test.rb
|
# test/browser/agent_ticket_online_notification_test.rb
|
||||||
|
# test/browser/agent_ticket_overview_group_by_organization_test.rb
|
||||||
# test/browser/agent_ticket_overview_level0_test.rb
|
# test/browser/agent_ticket_overview_level0_test.rb
|
||||||
# test/browser/agent_ticket_overview_level1_test.rb
|
# test/browser/agent_ticket_overview_level1_test.rb
|
||||||
# test/browser/agent_ticket_overview_tab_test.rb
|
# test/browser/agent_ticket_overview_tab_test.rb
|
||||||
|
@ -332,6 +336,7 @@ elif [ "$LEVEL" == '5' ]; then
|
||||||
rm test/browser/agent_ticket_macro_test.rb
|
rm test/browser/agent_ticket_macro_test.rb
|
||||||
rm test/browser/agent_ticket_merge_test.rb
|
rm test/browser/agent_ticket_merge_test.rb
|
||||||
rm test/browser/agent_ticket_online_notification_test.rb
|
rm test/browser/agent_ticket_online_notification_test.rb
|
||||||
|
rm test/browser/agent_ticket_overview_group_by_organization_test.rb
|
||||||
rm test/browser/agent_ticket_overview_level0_test.rb
|
rm test/browser/agent_ticket_overview_level0_test.rb
|
||||||
rm test/browser/agent_ticket_overview_level1_test.rb
|
rm test/browser/agent_ticket_overview_level1_test.rb
|
||||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||||
|
@ -408,6 +413,7 @@ elif [ "$LEVEL" == '6' ]; then
|
||||||
rm test/browser/agent_ticket_macro_test.rb
|
rm test/browser/agent_ticket_macro_test.rb
|
||||||
rm test/browser/agent_ticket_merge_test.rb
|
rm test/browser/agent_ticket_merge_test.rb
|
||||||
rm test/browser/agent_ticket_online_notification_test.rb
|
rm test/browser/agent_ticket_online_notification_test.rb
|
||||||
|
rm test/browser/agent_ticket_overview_group_by_organization_test.rb
|
||||||
rm test/browser/agent_ticket_overview_level0_test.rb
|
rm test/browser/agent_ticket_overview_level0_test.rb
|
||||||
rm test/browser/agent_ticket_overview_level1_test.rb
|
rm test/browser/agent_ticket_overview_level1_test.rb
|
||||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
|
||||||
|
require 'browser_test_helper'
|
||||||
|
|
||||||
|
class AgentTicketOverviewGroupByOrganizationTest < TestCase
|
||||||
|
|
||||||
|
=begin
|
||||||
|
|
||||||
|
Verify fix for Github issue #2046 - Special characters get HTML encoded when displayed in overviews...
|
||||||
|
|
||||||
|
=end
|
||||||
|
def test_grouping_by_organzation_overview
|
||||||
|
random = rand(999_999).to_s
|
||||||
|
user_email = "user_#{random}@example.com"
|
||||||
|
overview_name = "overview_#{random}"
|
||||||
|
|
||||||
|
@browser = instance = browser_instance
|
||||||
|
login(
|
||||||
|
username: 'master@example.com',
|
||||||
|
password: 'test',
|
||||||
|
url: browser_url,
|
||||||
|
)
|
||||||
|
tasks_close_all()
|
||||||
|
|
||||||
|
# 1. Create a new test organization with special characters in its name
|
||||||
|
organization = organization_create(
|
||||||
|
data: {
|
||||||
|
name: 'äöüß & Test Organization',
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
# 2. Create a new user that belongs to the test organization
|
||||||
|
user = user_create(
|
||||||
|
data: {
|
||||||
|
login: 'test user',
|
||||||
|
firstname: 'Max',
|
||||||
|
lastname: 'Mustermann',
|
||||||
|
email: user_email,
|
||||||
|
password: 'some-pass',
|
||||||
|
organization: 'äöüß & Test Organization',
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
# 3. Create a new ticket for the test user
|
||||||
|
ticket = ticket_create(
|
||||||
|
data: {
|
||||||
|
customer: user_email,
|
||||||
|
title: 'test ticket',
|
||||||
|
body: 'test ticket',
|
||||||
|
group: 'Users',
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
# 4. Create an overview grouping by organization
|
||||||
|
overview = overview_create(
|
||||||
|
data: {
|
||||||
|
name: overview_name,
|
||||||
|
roles: %w[Agent Admin Customer],
|
||||||
|
group_by: 'Organization',
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
# 5. Open the newly created overview and verify that the organization name is correctly rendered
|
||||||
|
location(url: "#{browser_url}/#ticket/view/#{overview_name}")
|
||||||
|
sleep 1
|
||||||
|
elements = instance.find_elements(xpath: '//b[contains(text(),"äöüß & Test Organization")]')
|
||||||
|
elements = elements.select { |x| x.text.present? }
|
||||||
|
assert elements
|
||||||
|
assert_equal 'äöüß & Test Organization', elements.first.text
|
||||||
|
end
|
||||||
|
end
|
|
@ -1686,6 +1686,15 @@ wait untill text in selector disabppears
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if data[:group_by]
|
||||||
|
select(
|
||||||
|
browser: instance,
|
||||||
|
css: '.modal select[name="group_by"]',
|
||||||
|
value: data[:group_by],
|
||||||
|
mute_log: true,
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
instance.find_elements(css: '.modal button.js-submit')[0].click
|
instance.find_elements(css: '.modal button.js-submit')[0].click
|
||||||
modal_disappear(browser: instance)
|
modal_disappear(browser: instance)
|
||||||
11.times do
|
11.times do
|
||||||
|
@ -2695,6 +2704,17 @@ wait untill text in selector disabppears
|
||||||
element = instance.find_elements(css: '.modal input[name=password_confirm]')[0]
|
element = instance.find_elements(css: '.modal input[name=password_confirm]')[0]
|
||||||
element.clear
|
element.clear
|
||||||
element.send_keys(data[:password])
|
element.send_keys(data[:password])
|
||||||
|
if data[:organization]
|
||||||
|
element = instance.find_elements(css: '.modal input.searchableSelect-main')[0]
|
||||||
|
element.clear
|
||||||
|
element.send_keys(data[:organization])
|
||||||
|
target = nil
|
||||||
|
until target
|
||||||
|
sleep 0.5
|
||||||
|
target = instance.find_elements(css: ".modal li[title='#{data[:organization]}']")[0]
|
||||||
|
end
|
||||||
|
target.click()
|
||||||
|
end
|
||||||
check(
|
check(
|
||||||
browser: instance,
|
browser: instance,
|
||||||
css: '.modal input[name=role_ids][value=3]',
|
css: '.modal input[name=role_ids][value=3]',
|
||||||
|
@ -2718,6 +2738,56 @@ wait untill text in selector disabppears
|
||||||
assert(true, 'user created')
|
assert(true, 'user created')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
=begin
|
||||||
|
|
||||||
|
organization_create(
|
||||||
|
browser: browser2,
|
||||||
|
data: {
|
||||||
|
name: 'Test Organization',
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
=end
|
||||||
|
|
||||||
|
def organization_create(params = {})
|
||||||
|
switch_window_focus(params)
|
||||||
|
log('organization_create', params)
|
||||||
|
|
||||||
|
instance = params[:browser] || @browser
|
||||||
|
data = params[:data]
|
||||||
|
|
||||||
|
click(
|
||||||
|
browser: instance,
|
||||||
|
css: 'a[href="#manage"]',
|
||||||
|
mute_log: true,
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
browser: instance,
|
||||||
|
css: '.content.active a[href="#manage/organizations"]',
|
||||||
|
mute_log: true,
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
browser: instance,
|
||||||
|
css: '.content.active a[data-type="new"]',
|
||||||
|
mute_log: true,
|
||||||
|
)
|
||||||
|
modal_ready(browser: instance)
|
||||||
|
element = instance.find_elements(css: '.modal input[name=name]')[0]
|
||||||
|
element.clear
|
||||||
|
element.send_keys(data[:name])
|
||||||
|
|
||||||
|
instance.find_elements(css: '.modal button.js-submit')[0].click
|
||||||
|
modal_disappear(
|
||||||
|
browser: instance,
|
||||||
|
timeout: 5,
|
||||||
|
)
|
||||||
|
watch_for(
|
||||||
|
browser: instance,
|
||||||
|
css: 'body',
|
||||||
|
value: data[:name],
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
|
||||||
calendar_create(
|
calendar_create(
|
||||||
|
|
Loading…
Reference in a new issue