Skip to content

Commit

Permalink
Fixes #2017 phone notify not clearing
Browse files Browse the repository at this point in the history
  • Loading branch information
mantas committed May 24, 2018
1 parent ad3362e commit 3a645d1
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 8 deletions.
24 changes: 16 additions & 8 deletions app/assets/javascripts/app/controllers/cti.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class App.CTI extends App.Controller
active: false
counter: 0
state: {}
backendEnabled: false

constructor: ->
super
Expand All @@ -29,9 +30,9 @@ class App.CTI extends App.Controller
@meta.counter += 1
@updateNavMenu()
if data.state is 'answer' || data.state is 'hangup'
return if !@meta.state[data.id]
delete @meta.state[data.id]
@meta.counter -= 1
if @meta.state[data.id]
delete @meta.state[data.id]
@meta.counter -= 1
@updateNavMenu()
'cti_event'
)
Expand Down Expand Up @@ -82,6 +83,17 @@ class App.CTI extends App.Controller
App.Collection.loadAssets(data.assets)
if data.backends
@backends = data.backends

# check if configured backends are changed
backendEnabled = false
for backend in @backends
if backend.enabled
backendEnabled = true
if backendEnabled isnt @backendEnabled
@renderDone = false
@backendEnabled = backendEnabled

# render new caller list
if data.list
@list = data.list
if @renderDone
Expand Down Expand Up @@ -109,11 +121,7 @@ class App.CTI extends App.Controller
return

# check if min one backend is enabled
backendEnabled = false
for backend in @backends
if backend.enabled
backendEnabled = true
if !backendEnabled
if !@backendEnabled
@html App.view('cti/not_configured')(
backends: @backends
isAdmin: @permissionCheck('admin.integration')
Expand Down
6 changes: 6 additions & 0 deletions script/build/test_slice_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ if [ "$LEVEL" == '1' ]; then
# test/browser/maintenance_session_message_test.rb
# test/browser/manage_test.rb
# test/browser/monitoring_test.rb
rm test/browser/phone_notify_not_clearing_on_leftside_test.rb
rm test/browser/preferences_language_test.rb
rm test/browser/preferences_permission_check_test.rb
rm test/browser/preferences_token_access_test.rb
Expand Down Expand Up @@ -137,6 +138,7 @@ elif [ "$LEVEL" == '2' ]; then
rm test/browser/maintenance_session_message_test.rb
rm test/browser/manage_test.rb
rm test/browser/monitoring_test.rb
rm test/browser/phone_notify_not_clearing_on_leftside_test.rb
rm test/browser/preferences_language_test.rb
rm test/browser/preferences_permission_check_test.rb
rm test/browser/preferences_token_access_test.rb
Expand Down Expand Up @@ -209,6 +211,7 @@ elif [ "$LEVEL" == '3' ]; then
rm test/browser/maintenance_session_message_test.rb
rm test/browser/manage_test.rb
rm test/browser/monitoring_test.rb
rm test/browser/phone_notify_not_clearing_on_leftside_test.rb
rm test/browser/preferences_language_test.rb
rm test/browser/preferences_permission_check_test.rb
rm test/browser/preferences_token_access_test.rb
Expand Down Expand Up @@ -281,6 +284,7 @@ elif [ "$LEVEL" == '4' ]; then
rm test/browser/maintenance_session_message_test.rb
rm test/browser/manage_test.rb
rm test/browser/monitoring_test.rb
rm test/browser/phone_notify_not_clearing_on_leftside_test.rb
rm test/browser/preferences_language_test.rb
rm test/browser/preferences_permission_check_test.rb
rm test/browser/preferences_token_access_test.rb
Expand Down Expand Up @@ -352,6 +356,7 @@ elif [ "$LEVEL" == '5' ]; then
rm test/browser/maintenance_session_message_test.rb
rm test/browser/manage_test.rb
rm test/browser/monitoring_test.rb
rm test/browser/phone_notify_not_clearing_on_leftside_test.rb
rm test/browser/preferences_language_test.rb
rm test/browser/preferences_permission_check_test.rb
rm test/browser/preferences_token_access_test.rb
Expand Down Expand Up @@ -426,6 +431,7 @@ elif [ "$LEVEL" == '6' ]; then
rm test/browser/maintenance_session_message_test.rb
rm test/browser/manage_test.rb
rm test/browser/monitoring_test.rb
# rm test/browser/phone_notify_not_clearing_on_leftside_test.rb
# test/browser/preferences_language_test.rb
# test/browser/preferences_permission_check_test.rb
# test/browser/preferences_token_access_test.rb
Expand Down
51 changes: 51 additions & 0 deletions test/browser/phone_notify_not_clearing_on_leftside_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
require 'browser_test_helper'

# Regression test for #2017

class PhoneNotifyNotClearingOnLeftsideTest < TestCase
def test_notify_badge
id = rand(99_999_999)

@browser = browser_instance
login(
username: 'master@example.com',
password: 'test',
url: browser_url,
)

click(css: 'a[href="#manage"]')
click(css: 'a[href="#system/integration"]')
click(css: 'a[href="#system/integration/sipgate"]')

if !@browser.find_element(css: 'input[name=sipgate_integration]').property('checked')
switch(
css: '.active .js-switch',
type: 'on'
)
end

watch_for(
css: 'a[href="#cti"]'
)

click(css: 'a[href="#cti"]')

# simulate sipgate callbacks

url = URI.join(browser_url, 'api/v1/sipgate/in')
params = { direction: 'in', from: '491715000002', to: '4930600000000', callId: "4991155921769858278-#{id}", cause: 'busy' }
Net::HTTP.post_form(url, params.merge(event: 'newCall'))
Net::HTTP.post_form(url, params.merge(event: 'hangup'))

watch_for(
css: '.js-phoneMenuItem .counter',
value: '1'
)

@browser.find_element(css: '.table-checkbox label').click

watch_for_disappear(
css: '.js-phoneMenuItem .counter'
)
end
end

0 comments on commit 3a645d1

Please sign in to comment.