123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336 |
- # encoding: utf-8
- require 'test_helper'
- class CtiCallerIdTest < ActiveSupport::TestCase
- test '1 parse possible phone numbers in text' do
- text = "some text\ntest 123"
- result = []
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '0049 1234 123456789'
- result = ['491234123456789']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '022 1234567'
- result = ['49221234567']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '0271233211'
- result = ['49271233211']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '021-233-9123'
- result = ['49212339123']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '09 123 32112'
- result = ['49912332112']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '021 2331231'
- result = ['49212331231']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '021 321123123'
- result = ['4921321123123']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '622 32281'
- result = ['4962232281']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '5754321'
- result = ['495754321']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '092213212'
- result = ['4992213212']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '(09)1234321'
- result = ['4991234321']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '+49 30 53 00 00 000'
- result = ['4930530000000']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '+49 160 0000000'
- result = ['491600000000']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '+49 (0) 30 60 00 00 00-0'
- result = ['4930600000000']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '0043 (0) 30 60 00 00 00-0'
- result = ['4330600000000']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '0043 30 60 00 00 00-0'
- result = ['4330600000000']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = '1-888-407-4747'
- result = ['18884074747']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = 'Lorem ipsum dolor sit amet, consectetuer +49 (0) 30 60 00 00 00-0 adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel.'
- result = ['4930600000000']
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = "GS Oberalteich\nTelefon 09422 1000 Telefax 09422 805000\nE-Mail: "
- result = %w(4994221000 499422805000)
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = 'Tel +41 81 288 63 93 / +41 76 346 72 14 ...'
- result = %w(41812886393 41763467214)
- assert_equal(result, Cti::CallerId.parse_text(text))
- text = "P: +1 (949) 431 0000\nF: +1 (949) 431 0001\nW: http://znuny"
- result = %w(19494310000 19494310001)
- assert_equal(result, Cti::CallerId.parse_text(text))
- end
- test '2 lookups' do
- Ticket.destroy_all
- Cti::CallerId.destroy_all
- agent1 = User.create_or_update(
- login: 'ticket-caller_id-agent1@example.com',
- firstname: 'CallerId',
- lastname: 'Agent1',
- email: 'ticket-caller_id-agent1@example.com',
- password: 'agentpw',
- active: true,
- phone: '+49 1111 222222',
- fax: '+49 1111 222223',
- mobile: '+49 1111 222223',
- note: 'Phone at home: +49 1111 222224',
- updated_by_id: 1,
- created_by_id: 1,
- )
- agent2 = User.create_or_update(
- login: 'ticket-caller_id-agent2@example.com',
- firstname: 'CallerId',
- lastname: 'Agent2',
- email: 'ticket-caller_id-agent2@example.com',
- password: 'agentpw',
- phone: '+49 2222 222222',
- note: 'Phone at home: <b>+49 2222 222224</b>',
- active: true,
- updated_by_id: 1,
- created_by_id: 1,
- )
- agent3 = User.create_or_update(
- login: 'ticket-caller_id-agent3@example.com',
- firstname: 'CallerId',
- lastname: 'Agent3',
- email: 'ticket-caller_id-agent3@example.com',
- password: 'agentpw',
- phone: '+49 2222 222222',
- active: true,
- updated_by_id: 1,
- created_by_id: 1,
- )
- customer1 = User.create_or_update(
- login: 'ticket-caller_id-customer1@example.com',
- firstname: 'CallerId',
- lastname: 'Customer1',
- email: 'ticket-caller_id-customer1@example.com',
- password: 'customerpw',
- active: true,
- updated_by_id: 1,
- created_by_id: 1,
- )
- Cti::CallerId.rebuild
- caller_ids = Cti::CallerId.lookup('491111222277')
- assert_equal(0, caller_ids.length)
- caller_ids = Cti::CallerId.lookup('491111222223')
- assert_equal(1, caller_ids.length)
- assert_equal(agent1.id, caller_ids[0].user_id)
- assert_equal('known', caller_ids[0].level)
- caller_ids = Cti::CallerId.lookup('492222222222')
- assert_equal(2, caller_ids.length)
- assert_equal(agent3.id, caller_ids[0].user_id)
- assert_equal('known', caller_ids[0].level)
- assert_equal(agent2.id, caller_ids[1].user_id)
- assert_equal('known', caller_ids[1].level)
- # create ticket in group
- ticket1 = Ticket.create(
- title: 'some caller id test 1',
- group: Group.lookup(name: 'Users'),
- customer: customer1,
- state: Ticket::State.lookup(name: 'new'),
- priority: Ticket::Priority.lookup(name: '2 normal'),
- updated_by_id: agent1.id,
- created_by_id: agent1.id,
- )
- article1 = Ticket::Article.create(
- ticket_id: ticket1.id,
- from: 'some_sender@example.com',
- to: 'some_recipient@example.com',
- subject: 'some subject',
- message_id: 'some@id',
- body: "some message\nFon (GEL): +49 111 366-1111 Mi-Fr
- Fon (LIN): +49 222 6112222 Mo-Di
- Mob: +49 333 8362222",
- internal: false,
- sender: Ticket::Article::Sender.where(name: 'Customer').first,
- type: Ticket::Article::Type.where(name: 'email').first,
- updated_by_id: customer1.id,
- created_by_id: customer1.id,
- )
- assert(ticket1)
- # create ticket in group
- ticket2 = Ticket.create(
- title: 'some caller id test 2',
- group: Group.lookup(name: 'Users'),
- customer: customer1,
- state: Ticket::State.lookup(name: 'new'),
- priority: Ticket::Priority.lookup(name: '2 normal'),
- updated_by_id: agent1.id,
- created_by_id: agent1.id,
- )
- article2 = Ticket::Article.create(
- ticket_id: ticket2.id,
- from: 'some_sender@example.com',
- to: 'some_recipient@example.com',
- subject: 'some subject',
- message_id: 'some@id',
- body: "some message\nFon (GEL): +49 111 111-1111 Mi-Fr
- Fon (LIN): +49 222 1112222 Mo-Di
- Mob: +49 333 1112222",
- internal: false,
- sender: Ticket::Article::Sender.where(name: 'Agent').first,
- type: Ticket::Article::Type.where(name: 'email').first,
- updated_by_id: agent1.id,
- created_by_id: agent1.id,
- )
- assert(ticket2)
- Cti::CallerId.rebuild
- caller_ids = Cti::CallerId.lookup('491111222277')
- assert_equal(0, caller_ids.length)
- caller_ids = Cti::CallerId.lookup('491111222223')
- assert_equal(1, caller_ids.length)
- assert_equal(agent1.id, caller_ids[0].user_id)
- assert_equal('known', caller_ids[0].level)
- caller_ids = Cti::CallerId.lookup('492222222222')
- assert_equal(2, caller_ids.length)
- assert_equal(agent3.id, caller_ids[0].user_id)
- assert_equal('known', caller_ids[0].level)
- assert_equal(agent2.id, caller_ids[1].user_id)
- assert_equal('known', caller_ids[1].level)
- caller_ids = Cti::CallerId.lookup('492226112222')
- assert_equal(1, caller_ids.length)
- assert_equal(customer1.id, caller_ids[0].user_id)
- assert_equal('maybe', caller_ids[0].level)
- caller_ids = Cti::CallerId.lookup('492221112222')
- assert_equal(0, caller_ids.length)
- end
- test '3 lookups' do
- Cti::CallerId.destroy_all
- Cti::CallerId.maybe_add(
- caller_id: '4999999999',
- level: 'maybe',
- user_id: 2,
- object: 'Ticket',
- o_id: 2,
- )
- Cti::CallerId.maybe_add(
- caller_id: '4912345678901',
- comment: 'Hairdresser Bob Smith, San Francisco',
- level: 'public',
- user_id: 2,
- object: 'GoYello',
- o_id: 1,
- )
- caller_ids = Cti::CallerId.lookup('4912345678901')
- assert_equal(1, caller_ids.length)
- assert_equal('public', caller_ids[0].level)
- assert_equal(2, caller_ids[0].user_id)
- assert_equal('Hairdresser Bob Smith, San Francisco', caller_ids[0].comment)
- Cti::CallerId.maybe_add(
- caller_id: '4912345678901',
- level: 'maybe',
- user_id: 2,
- object: 'Ticket',
- o_id: 2,
- )
- caller_ids = Cti::CallerId.lookup('4912345678901')
- assert_equal(1, caller_ids.length)
- assert_equal('maybe', caller_ids[0].level)
- assert_equal(2, caller_ids[0].user_id)
- assert_equal(nil, caller_ids[0].comment)
- Cti::CallerId.maybe_add(
- caller_id: '4912345678901',
- level: 'maybe',
- user_id: 2,
- object: 'Ticket',
- o_id: 2,
- )
- caller_ids = Cti::CallerId.lookup('4912345678901')
- assert_equal(1, caller_ids.length)
- assert_equal('maybe', caller_ids[0].level)
- assert_equal(2, caller_ids[0].user_id)
- assert_equal(nil, caller_ids[0].comment)
- Cti::CallerId.maybe_add(
- caller_id: '4912345678901',
- level: 'maybe',
- user_id: 3,
- object: 'Ticket',
- o_id: 2,
- )
- caller_ids = Cti::CallerId.lookup('4912345678901')
- assert_equal(2, caller_ids.length)
- assert_equal('maybe', caller_ids[0].level)
- assert_equal(3, caller_ids[0].user_id)
- assert_equal(nil, caller_ids[0].comment)
- assert_equal('maybe', caller_ids[1].level)
- assert_equal(2, caller_ids[1].user_id)
- assert_equal(nil, caller_ids[1].comment)
- Cti::CallerId.maybe_add(
- caller_id: '4912345678901',
- level: 'known',
- user_id: 3,
- object: 'User',
- o_id: 2,
- )
- caller_ids = Cti::CallerId.lookup('4912345678901')
- assert_equal(1, caller_ids.length)
- assert_equal('known', caller_ids[0].level)
- assert_equal(3, caller_ids[0].user_id)
- assert_equal(nil, caller_ids[0].comment)
- end
- end
|