controller_peering.t:
- Add tests to add peer_auth_user, peer_auth_pass and peer_auth_realm.
- check if said entrys have been created
Change-Id: I052decf1a1a07346ffa4d66ec06e2ef10f987cde
clear() would trigger a search in the table, which could lead in some cases
to "stale_element_reference" errors. CTRL+A doesnt do this and allows to
make search requests, especially those with only one existing element in
the table to be much simpler.
Change-Id: I8e107f8adf45fae95304482176f3f67d9e28bca6
controller_billing.t:
- Add Garbage text search when to the billing page to (hopefully) prevent
"stale element exception" or "element not interactable" exceptions.
Change-Id: I017d8ab0e09b7425307e1aca686ad351651a00cc
controller_peering.t:
- Made delete routine for removing peering servers/groups simpler and
hopefully more reliable.
Change-Id: Ice0854f1953ca017e5db09e4ad0288e21a73218d
controller_billing.t:
- Billing profile now gets deleted at the end.
- Check if billing profile is deleted.
Change-Id: Ia4dcbb8498f4482fe9b76568308314ceecb95d99
controller_billing.t:
- Add a $billingname at the beginning of the test. This will generate the
name "testingprofile + 5 random numbers". Will be used to properly check
if a peering group has been created/deleted.
- Rewrite create, check and edited other code to use that new variable.
Change-Id: Id9403a356b3ceb3c67e51cc3735b75ba90511a7a
Common.pm:
- For some reason, diag texts were missing in some functions even though
they exist in others. Added them now.
Change-Id: Ib5f84a62703fbb9021f99ff6d2c1e2d7345f6b27
controller_peering.t:
- Add a $groupname at the beginning of the test. This will generate the
name "testinggroup + 5 random numbers". Will be used to properly check
if a peering group has been created/deleted.
- Rewrite create, check and delete code to use that new variable.
Change-Id: I16489290be9780de2f457588767344080cf71b1e
controller_customer.t:
- change move_actions to move mouse over invisible buttons instead of
some element in column.
- used cleaner xpath.
Change-Id: I69b56f5e024b8392310b28490c37654e3445e620
controller_reseller.t:
- change move_actions to move mouse over invisible buttons instead of
some element in column.
- used cleaner xpath.
Change-Id: Ibb7adda18eda2dd0707e01b15c10615ccb71c8fd
Common.pm:
- change move_actions to move mouse over invisible buttons instead of
some element in column.
- used cleaner xpath.
Change-Id: Ic12bbd000a62e3d69c099b2ea896d418cc45a237
controller_customer.t:
- check for PBX enviroment variable. If set to 1, it will run additional
tests for PBX enabled systems. If nothing or 0, it will run without these.
Change-Id: I95236f051b212d63cf6075cdaebd05319279a548
controller_reseller.t:
- Is now creating a new Invoice Template.
- Will check if Invoice Template has been created.
Change-Id: I0e49bfdb1d3ec5da9818a90aa397d993147bceac
controller_customer.t:
- Edited code blocks around clicking invisible buttons. Should work
more reliable now.
- replaced find_element with find_element_by_css when checking for
empty tables. Should prevent crashing.
Change-Id: Ifa7e8f85a1eec17e530032660781fa5840685edd
Common.pm:
- Added a new argument $cancel to delete_reseller() and
delete_reseller_contracts(), so it clicks on cancel instead of ok.
- Added a second move_action(), its needed because if mouse pointer is at
the exact same location as before, the buttons wont show up.
controller_reseller.t:
- implement checks to see if reseller and contract are still there if you
press cancel.
Change-Id: Id6a097314cc2fc025dac71c085c6adef98414890
controller_reseller.t:
- Modified stuff so instead of taking the fist 'active' entry,
it now uses our new reseller.
Change-Id: I0d10158ff025e6fcab791acc445aca822208f675
Common.pm:
- delete_reseller() will delete our newly created reseller.
- delete_reseller_contract() will do the same for the contract.
controller_reseller.t:
- added both new functions.
- check if reseller is actually deleted.
- check if contract is actually deleted.
Change-Id: Ic24ca53b76264f5e91e8030f47930abcc46dc11c
Common.pm:
- add create_reseller_contract(). This will create a contract for use in
create_reseller().
- add create_reseller() to really test creating a reseller.
controller_reseller.t:
- included new functions.
Change-Id: I78bcddba3dd7f4aa6949ac88ae3cc68296194b45
controller_reseller.t:
- Test will now 'create' a reseller first, then it will check the search.
(It doesnt create anything right now...)
- Searching and verifying garbage text improved.
Change-Id: Id3b9a3a12cb62df9ed5163aee86fa6a97995977e
controller_billing.t:
- Made garbage search call much simpler.
- Replace find_element with find_element_by_css, prevents crashing if
garbage text search didnt work.
- Added new ok() tests for find_element_by_css.
- Removed commented lines
Change-Id: I42cf670c47cdc22db9ba1c8079fac3e3bb5147c8
Common.pm:
- add garbage text search to delete_domain function, should prevent
stale_element_exception.
- changed a few element ids, should be better for future tests.
Change-Id: I8e9b0bbd7438f14670685ef7c09609c01b2c2375
controller_domain.t:
- All ok() calls should now have correct text to print.
- Minor formatting changes.
Change-Id: I0f74039ef32b488f19b29be726102150338bb775
controller_customer.t:
- Add better check for empty table. Should prevent stale_element_exception
- Test now adds and deletes its own domain. Enables proper search testing
Change-Id: I6eed8ce85d2b118c825cd73ff46c70a3f737a587
Common.pm:
- add function delete_domain() for clean up after test run
controller_domain.t:
- implement delete_domain()
Change-Id: Ice5e902af9819ffeb683cfe6a3f86fe523d55e87
Some selenium tests depend on each other.
Example: controller_customer.t doesnt work, if controller_domain.t isnt
executed beforehand.
Common.pm is used so that selenium tests are more independent. Right now,
it contains code to create a domain.
Very useful for multithreading later on.
Change-Id: If01c7cd4d17ef66771bc64516088d3f57b02bf78
controller_customer.t:
- removing a probably unnecessary sleep call that would trigger if either
chrome or phantomjs are used.
Change-Id: I2758c2756eb9f29fcbdcfacbce9b02faef87e056
Inconvenient DOM changes (aka. stale element reference) would crash
the method, causing failed tests.
This moves a try/catch block into the loop to workaround said issue.
Change-Id: Id1f34292183cd6dea31292d07bfd6897d71bd796
Test was crashing, because of invisible button madness.
Now it will move the cursor to the column it wants to delete.
Button shows up and is clickable now.
Change-Id: I59aa27d7ef2fe06a6caa28620341363ff99f1042
Added wait_for_text() to wait until a text appears.
Can also be used to check if text is here.
It will return true or false to be used in further testing
Change-Id: Ib28636b7757a5312652da86d3b43b9fd8547522b
XML files generated by prove will contain the time we spend in every
test case, it allows us profile our tests and fix the most slop parts.
Change-Id: I965af2d95f57d8975613da0f46ce8abf1be4c114
Jenkins uses wrapper jenkins_docker_run which will mask exit code
anyway and this is what we want currently:
we need always zero exit code here on Jenkins.
Jenkins will detect errors in produced artifacts (XML files) if any
as a result the Jenkins job will be "yellow" instead of "red".
Change-Id: I249fcde9103ee25e6798fcb835ee4a408f8f0f57
We have it already inside t/selenium/testrunner, let's remove it here
to prevent duplicate and simplify the script.
Change-Id: I184642ce18c04cd30ea1c4a8a94a4ee1f8fdac99
testrunner:
- removed -m from local Perl launch options. this would cause diag messages
to only print when the script is finished. Without it we can see in
realtime where scripts get stuck. still used for Jenkins
- can now specify which test cases should be executed in launch options.
- code cleanups
jenkins_docker_run:
- remove hardcoded old parameters as Jenkins job path all the necessary
parameters already in the proper order, we just need to proxy them into
the shell script 'testrunner' to run it under the user 'selenium'.
Change-Id: Icaced3c3ce65cd23f3037517296e49afce4a9414
controller_customer.t:
- cleaned up some ok statements to see what acutally is going on.
- Added check for adding subscribers to a customer
Change-Id: I49a8f8e671472a7875ccc6d84d1fae50691a62ae
Previously, controller_domain.t would skip the test because
there were obviously no domains after compile.
New version adds a domain and checks if the search works.
Change-Id: I8e8bad9725d253a7c578b50beded5807b5d452b1
The main difficulty is that peeringserver has hardcoded reseller_id = 1 in the preferences update logic to check provided soundset ownership.
Peeringserver sound_set preference => should have reseller_id = 1
Subscribers & profiles sound_set preferences => should have appropriate to subscriber or profile reseller_id
It makes creation of the test data more sophisticated, specially considering that sound_set has both reseller_id and customer_id and they should be coordinated (customer should belong to the reseller)
Change-Id: Id7a299cb828144281f078c706ba7048ccfc58e82
PATCH "remove by value" will from now remove values even if provided hash has less keys, than original value
Change-Id: I2ee04fa279580d662e167c3a0b160fe29d8d79ef
It should help to catch the random fail in the test:
> # Go to Customers page
> # Create a Customer
> Can't use string ("no such element") as a HASH ref while "strict refs" in use at /home/selenium/Selenium-Remote-Driver/lib/Selenium/Remote/Driver.pm line 684.
> at /home/selenium/Selenium-Remote-Driver/lib/Selenium/Remote/Driver.pm line 655.
> # Tests were run but no plan was declared and done_testing() was not seen.
> # Looks like your test exited with 255 just after 5.
> Dubious, test returned 255 (wstat 65280, 0xff00)
Change-Id: I3094500b75590a284d5f28c987cadf21eb95033d
The full issue description you can find in commit message
a9399b1efd.
In short, Selenium can't press on "Edit" button because
it is being hidden on every AJAX request to backend.
(Un)fortunately the previous fix opened new ngcp-panel JS
issue reported as TT#50005: JS performs several AJAX requests
to backend and the second request still cause the same problem
as previous caused the first one.
Luckily JS performs only one request to backend on the page load.
And starts doubling them when we enter something into "filter".
As a result, the previous commit has been reverted and new approach
is proposed here: we will just wait data appearance in "Dates"
(which means the first AJAX request is finished).
Change-Id: If991af70e1ad1b00b04e4118c0b5f52b2d636eba
The previous variable name didn't represent the real code context.
The changes were initially part of commit a9399b1efd and
were extracted to separate commit as initial commit had been
reverted in commit 0601b821006f.
Change-Id: Idf06a06b60498ec5df7a9472aa38413997dc23cb
The fix here didn't work well because another ngcp-panel issue has been
noticed and reported as TT#50005, the second AJAX request aborts Selenium
test by hiding "Edit" button. The better approach is follow.
This reverts commit a9399b1efd.
Change-Id: Icf6251261f0cbc12ef4e819b3352dc3ebf7c4246
Jenkins reports time-2-time issue on 'Peering Servers' page:
> # Delete the previously created Peering Rule
> ok 14
> Can't use string ("no such element") as a HASH ref while "strict refs" in use at /home/selenium/Selenium-Remote-Driver/lib/Selenium/Remote/Driver.pm line 684.
> at /home/selenium/Selenium-Remote-Driver/lib/Selenium/Remote/Driver.pm line 655.
> # Tests were run but no plan was declared and done_testing() was not seen.
> # Looks like your test exited with 255 just after 14.
It was caused by slow AJAX loading here.
The button 'Delete' was not yet loaded and
we were just do 'sleep 1' and were trying to press it.
How we are clearly waiting for the record to be loaded
before trying to delete it.
Change-Id: Ia20cb427262e9c973ce4853d3ebb17438780afd0
It was old floating issue which randomly failed the test and
jenkins job ngcp-panel-test-selenium-docker became often yellow.
The problem here was in two facts:
- 'Edit' button available with mouseover only
- there is AJAX on this page for filtering 'Dates' records.
Historically we have no ability to wait for all AJAX loadings.
When Selenium moved mouse over Edit column to press it,
AJAX can be finished and removed "Processing..." label
from "Dates" field. It cause loosing mouseover from "Edit"
button and button is hidden causing "element not interactable":
> # Click 'Edit' button for element 'Wednesday'
> Can't use string ("element not interactable") as a HASH ref while "strict refs" in use at /home/selenium/Selenium-Remote-Driver/lib/Selenium/Remote/Driver.pm line 684.
> at /home/selenium/Selenium-Remote-Driver/lib/Selenium/Remote/Driver.pm line 655.
> # Tests were run but no plan was declared and done_testing() was not seen.
> # Looks like your test exited with 255 just after 27.
It has been workarounded here as we cannot wait for AJAX.
We are creating fake query for "Dates" (searching "thisshouldnotexist")
and waiting until the table "Dates" has no search results records.
It means AJAX has finished and we can continue with the test.
Also here I have renamed confusing button from 'edit' to 'delete',
as we press delete. And we have to clean previous search 'thisshouldnotexist'
with proper '2008-02-28' which we want to delete.
Change-Id: I55af32991687e82c3e57b15c066e772ff0b77123
It will give Ajax enough time to load 'Edit' button,
otherwise we have some mystery which randomly happens
when Jenkins tests VMs on Google Cloud:
> # Edit Wednesday
> ok 26
> # Move mouse over 'Weekdays' row to make 'Edit' button available
> # Find 'Edit' button for element 'Wednesday'
> ok 27
> # Click 'Edit' button for element 'Wednesday'
> Can't use string ("element not interactable") as a HASH ref while "strict refs" in use at /home/selenium/Selenium-Remote-Driver/lib/Selenium/Remote/Driver.pm line 684.
> at /home/selenium/Selenium-Remote-Driver/lib/Selenium/Remote/Driver.pm line 655.
> # Tests were run but no plan was declared and done_testing() was not seen.
> # Looks like your test exited with 255 just after 27.
Locally it is not reproducible, also VM on Proxmox has
no such issues as well. I spend too much time here trying
to find the root of the issue, maybe Firefox version
we are currently using has some issues here. Give up, sleep 1.
Change-Id: I168270f6f6d25d8bdccfe6a40b2bc63aa0c5068e
The old code didn't work as expected, as RC receives
'tee' exit code (which is zero in most of the cases)
instead of 'prove' exit code.
The new code gets 'prove' exit code and it changes nothing
at the end, as we just print it into debug message.
Anyway Jenkins operates with JUnit output to detect issues.
It is better to have 'correct' code here to
prevent misunderstanding in the future.
Change-Id: I09f399813179590a67c25509f310c91f7e297f3a
The 'Edit' button appears only after mouse-over event,
and we might have race conditions here when we are trying
to click on not-yet available/accessible button causing:
> Can't use string ("element not interactable")...
Let's wait for button and then proceed with 'click()',
it is the behaviour we use everywhere, while it was missing here.
Also improve debug messages here for easier debug next time.
Change-Id: Iae955bb3f937da6b5c10369bc49f6dd75611dc87
name is unique per group in provisioning.voip_peer_hosts,
but not unique per group in kamailio.lcr_gw, that is filled after provisioning.voip_peer_hosts
by trigger voip_phost_urepl_trig
Change-Id: I005b97fc9b0aea84586ba23a57bcb070e5391ee0
Add test script for API
Fix DateTime create/update issue in TimeSets API (get2put case)
(add and edit functionlity used raw/inflated data respecively)
Add datetimepicker field
Change-Id: If724b7350658c306dbbecbc04309d1d1c0b4a3e2
Unify UI and API code to make subscriberadmin behavior with profile_set and profile common
Change alias_numbers input field to embedded RepeatableJS so it pass form validation
Change-Id: I1b3dc6f88cc6c1f43d76acc8e339dbb664c166a3
We have added new dependency in commit 2930237, but we also need to bump
Dockerfile version so Jenkins will rebuild docker container.
Change-Id: I1655af44d9e71c49473596a25e1cc9dbe617dbfa
* when fetching data from the journals tables
the start test time is used to filter out possible
existing records with the same resource ids
to address the mysql auto increment reset behaviour
Change-Id: Id048b97809628bbbcef9724ae0cf4eae39f7f0fa
We can replace the apply usage with map plus a returning s///.
This also fixes a hidden bug with the liblist-moreutils-perl dependency
missing from debian/control, being indirectly pulled by some other
dependency, while an implementation detail.
Change-Id: Ibfc7b362ad77c4b202d93cf71774c40623503f14
one was actually a true positive. the others were false positives
and are going to be silenced for the time being, while we try to find
an upstream solution. more details can be found in the ticket.
Change-Id: Iae8df7606774a9d26e4d44dbba557c9fe62d2252
this is to fix the TAP tests of the sipwise QA chain
fixed (or ignored):
- ControlStructures::ProhibitMutatingListFunctions
- Documentation::RequirePodSections
- InputOutput::RequireEncodingWithUTF8Layer
- Subroutines::ProhibitSubroutinePrototypes
- BuiltinFunctions::ProhibitStringySplit
- TestingAndDebugging::ProhibitNoStrict
- TestingAndDebugging::ProhibitProlongedStrictureOverride
- InputOutput::ProhibitTwoArgOpen
- CodeLayout::ProhibitQuotedWordLists
Change-Id: I7dce4ce123bad40de2d9b51ba5b1a141e20c3783
* enables fetching captured sip data
GET all collection returns JSON with available SIP messages
GET item collection requires a valid call-id and
returns pcap data generated from the packets of the call-id
Change-Id: I552ee9a312a4b9acf95bde93f6c584bbf82f9ea9
this is to clean the Sipwise TAP tests for this repo
the critical places where undef is really the intended return value (because
a scalar should always be returned) the rule has been overridden
Change-Id: I66e217a03a00e0f366db9c0cbc5007dd15cd9f96
"Mixed high and low-precedence booleans"
The operations have different precedence and must not be mixed together.
Change-Id: If38e25d6e94f599dc9462d9ee37ce165fa303b35
Fake_data keeps own test_machine, and when we change user
using runas in other test_machine instance - we need to
reinit cert files before request.
Change-Id: Idddeef2b0c10521c71ce5d77c5010f89c620185c
The code is currently broken due to the kamailio location migration
from mysql to redis. The test creates location record record using API
and it is properly created in Redis, later the test checks location
using another REST API request and find nothing:
> api-rest_api-subscriberregistrations_t.16 - subscriberregistrations:
> create test item 'subscriberregistrations' 1
> (Unprocessable Entity: Could not find a new registration entry in the db,
> that might be caused by the kamailio flush mechanism,
> where the item has been updated successfully)
The test should be re-enabled then ngcp-panel/REST code will use Redis
for location search.
Change-Id: I9706b8d04dcc2e2630d67b2622231ce726c4bc99
by using strict where it wasn't used before
plus fix all bugs that were discovered along the way by enabling strict
Change-Id: I7f9a8bf0cee74014fd7551ec26f2ab3922715efc
... to synchronized singleton
+ disable the 5 parallel checks in balanceintervals.t
-> it passes sometimes, sometimes not
.. too timing/load dependent.
Change-Id: I9255452f01465a0673182cf4e0a9b3f560660b73
Those changes brakes REST API test and we cannot fix them for a day while
Sipwise have to release 2 new releases tomorrow. We need stable test tonight.
Change-Id: Id0a666e7762bcd8c1109d4ed4f0760daa988fe17
"dpkg-query -s" doesn't give the desired answer, it includes packages
known to dpkg for different reasons, but does not exactly reply
whether they are installed or not, which is the intention of the code.
Change-Id: I84b4a6c4c7c84997c31b2bdb3f10e0fe9ab0b721
the reload of fakedata seems to require a path in the updated format.
Otherwise the command "do $filename" seems to not find the file.
Change-Id: I7751be6eaec2862a1547ee4ab70fb2b86a902f19
This reverts commit ca76144c4a.
The tests are fixed now, re-enable them on Jenkins using 'stable' set.
Change-Id: I7913a6feef183a14a404981ec10a457eb31d870b
This reverts commit 5988b51589.
The tests are fixed now, re-enable them on Jenkins using 'stable' set.
Change-Id: Ide5735bf42090c8176a4e20ecf538fcf2a698b60
Used to fetch whether pbx, faxserver, rtcengine etc is enabled.
* Fix rtcengine reseller creation:
- Refuse to create reseller if rtcengine part fails
- Use proper auto-generated rtcengine values (pass, domain)
to not fail on reseller names which are not forming valid
hostnames.
* Implement /api/admins/id to support testing
- add test
- fix creating admins with overly long login
- fix various ACL bugs handling /api/admins/
- fix creating /api/admincerts/ as r/o user
* Fix test framework
- use proper client cert when switching API user
Change-Id: I602fdd8181c0b3f23e76e3eab0df90a1ff9e986f
(cherry picked from commit 0d376bd8b59db65296090d26f2c84d704129beef)
Remove excrescent code from the pbxdevicemodels API & Panel
Add roles control per method for the API
Use form field "required" attribute for the API uploads
Fix getting old resource for the PATCH and PUT methods
Change-Id: Ia0515b3d071d45435db7c9138ea9de9447775143
* Fix syntax errors and internal errors
* Pass set ids back in mappings
* Allow updates of mappings both via name and ids
Change-Id: I26fdfe96d67563c11040a6c1e87f13a835bb793f
New Perl in stretch doesn't provide the method/hack to access variable,
we were using. Ira is searching for the fix here, so far temporary disabling the tests,
as the fix is not approaching this week. The commit must be reverted soonish.
Change-Id: Ib0fd290c6749df361638405589e9e5df6248394a
Recent switch to stretch in trunk makes it impossible to rebuild the image.
Also improve error handling here in case of removed ngcp-panel-tests-rest-api-build-deps
(docker will report an error in this case, previously it silently ignored that).
Change-Id: I51868265d0ff8fd646071ccff4fd380f2495d4d7
* Implement r/o access to /api/customers for subadmin
* Implement r/o access to /api/subscribers for subs
* Implement create access to /api/subscribers for subadmins
* Implement /api/numbers to re-assign a number
* Implement CF endpoints access for subs
* Implement new test framework to simplify testing
* Fix updating number by using Utils to make sure allowed_clis etc
are handled correctly
* Install missing docker dependencies for new test framework
* Add edr handling on /api/numbers/xx update
Change-Id: I678da16cfb1361b2809780cba8c204ac90bb1736
adapt PERL5LIB in a way, so that jenkins is also able to find it
(it uses /home/selenium/jenkins_docker_run)
Change-Id: I2d5ab35c77abd2dda9f676768da8cd6a36c4ddfb
Selenium::Remote::Driver v1.20 is the latest upstream release and
is missing some patches/PRs that we need for selenium tests of
ngcp-panel. Packaging the git version properly in the Debian way
is hard because of the way upsteam handles releases with separate
branches (one of them even being out-of-date, sigh). So instead
let's use a tarball from their latest git version until we see a
v.1.21 release.
Symlinking the geckodriver binary to /usr/bin/geckodriver addresses:
| Unable to find the geckodriver binary in your $PATH. at /home/selenium/Selenium-Remote-Driver/lib/Selenium/CanStartBinary/FindBinary.pm line 66.
Change-Id: I8ddf3c76a008ce5b0aa67b62154a9614f90cb659
all selenium tests are working with newest geckodriver (0.18.0) and patched S:R:D
issues:
- setting the window size: not urgent
- the unsupported move_to: fixed (new move_action)
- setting the implicit wait timeout: fixed upstream in S:R:D
Change-Id: Ic5b52cd866f4fd93682d67a4fd8a76ec54ea70cf
+ added conversations to api_root.t
+ disabled xmpp conversations source, since "soap"
MySQL user is not yet granted to prosody.* tables
Change-Id: I3d6a9418e7c2b77503f8472fe639e971ad7be3fa
Otherwise:
not ok 188 - check for valid link syntax
Use of uninitialized value $relname in exists at t/api-rest/api-root.t line 152.
Use of uninitialized value $relname in concatenation (.) or string at t/api-rest/api-root.t line 152.
not ok 189 - check for '' collection in Link
Use of uninitialized value $relname in delete at t/api-rest/api-root.t line 153.
Change-Id: Ib78e735e365b34404a06037b06dd7becdcf9917b
This package update includes further patches to address Selenium
test failures with geckodriver/Firefox:
* move_to: 4d0b8e7255
* timeouts: 2c55f3dcb9
Change-Id: I587f32230ce7cc8d912e052a93fb7d31fd7c90c1
Under Subscribers > Call Forward > Manage Timesets, the label for the
hour period has a typo. Should be "through" instead of "trough". Fix.
Change-Id: Iad07cb3c8ee69cd147e7629f1e551cd69da709ec
Which confuses developers which are debugging failed tests,
as details like below are not a part of XML Jenkins displays on a WEB:
> # Failed test 'create test customer w/o profile package'
> # at t/api-rest/api-balanceintervals.t line 1578.
> # got: '500'
> # expected: '201'
> Use of uninitialized value in concatenation (.) or string at t/api-rest/api-balanceintervals.t line 1580.
> Thread 4 terminated abnormally: malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE HTML>\n<!-...") at /usr/share/perl5/JSON.pm line 171.
'man prove' says:
> -m, --merge Merge test scripts' STDERR with their STDOUT.
Change-Id: I945d4d8867fc9c061f96d067be14125af7cc5a46
An unintended docker image rebuild of
ngcp-panel-tests-selenium-jessie resulted in failures with
our selenium tests. A series of problems started:
1) Updating the Selenium version resulted in an error message by
Selenium, requesting the geckodriver binary
(https://github.com/mozilla/geckodriver - being a proxy for using
W3C WebDriver-compatible clients to interact with Gecko-based
browsers). So Selenium versions >=3 depend on geckodriver.
2) Recent versions of Selenium also depend on Java >=8, available
only via backports for jessie. Since we avoid usage of backports
as much as possible and we'd have to upgrade once anyway we
decided to base our fresh docker image on stretch.
3) We have to backport Selenium::Remote::Driver (Debian package
libselenium-remote-driver-perl) for stretch (since it's not
available in Debian, even though there's an ITP:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839569). It has
a bug which prevents its usage for us:
https://github.com/gempesaw/Selenium-Remote-Driver/issues/319 ->
We fixed the problem via our own backport and submitted a PR
towards upstream:
https://github.com/gempesaw/Selenium-Remote-Driver/pull/321
4) Firefox from Debian/stretch (firefox-esr 52.2.0esr-1~deb9u1)
fails with geckodriver e.g. in click events, the current Firefox
version 54 works fine though. So instead install only the
relevant runtime packages from Debian and use the Firefox version
v54 from upstream.
Resulting changes:
* switch from Debian/jessie to Debian/stretch
* no longer use selenium at all but only geckodriver instead
(recent versions of selenium depend on geckodriver anyway)
* do all package/file changes in /home/selenium/ (to clearly
see what's from us/docker and what are actual temporary files)
* testrunner related changes:
- invoke vncserver with `-localhost no` option to accept
VNC connections not only from localhost only
- adjust vncserver process name for Xvnc4->Xtigervnc switch
- start geckodriver instead of selenium
* package related changes:
- backported libtest-pretty-perl (v0.32)
- backported libselenium-remote-driver-perl (v1.20)
- add curl to package list since it's handy for debugging test
failures, like e.g. `curl -X POST localhost:4444/session --data {}`
- add procps to have pkill binary available inside testrunner
- openjdk/java is no longer needed since we don't depend on selenium anymore
- vnc4server is now a transitional package for
tigervnc-standalone-server, so directly depend on it
Change-Id: I607ffd4fce80f9e84b76c3c7a19824819ac4503c
checks comparing "now" timestamps generated by the .t and by api code
(eg. lnp number termination) fail randomly. it seems the
clocks of docker and the api node differ sometimes. this commit
tries to compensate by sending the .t time with requests.
Change-Id: Iaded3735e746dab166364a34ea8a5cda8c8e40ab
It's fine to remove read-only fields only if $run==1, but in any
case remove unknown fields.
Also the force-array change broke additional tests, fixed them.
Change-Id: I48ffcf201bd1eedb8fb317f1ca248af9e4a01e60
If no locally cached API cert is available, download one and use it
throughout all of the tests. Speed-up factor is ~3x.
Change-Id: I083985f4e4ec7d8f7f4e0beec3a604be80a4bb59
in scenario 3 it is unclear, whether the correct direction should be "in" or
"out". The benefit of setting it to out would be, that it would make call type
modifications easier (see ticket).
Change-Id: I40557b2675c750362c4cd6ff63810e0157510463
-introduce deferred event record insertion, to span across
update_subscriber_number and update_subadmin_sub_aliases
calls by handing over a snapshot of aliases before number
edit operations
-the snapshot is used to persist first_non_primary_alias_before
event values
-it also is the preparation to derive number change events
apart from that, the following was noticed:
-fix: start_huntgroup was generated twice
-fix: when terminating a subs, the order of end events was
not the reverse order of start_events
-POST /api/subscribers does not consider pbx alais selection
of pilot pool aliases, while terminating the susbcriber does
move back alaises to the pilot pool.
Change-Id: I092f4a21bed25503f48c47c253f1cae0729f43da
+preference-style 1:1 association api resource will
list all existing customer contracts
+avoiding get_customer_rs for performance reasons
+PUT/PATCH only, no POST/DELETE
Change-Id: If3b00c6cde07bf030e8bfc308e5e29d3251bdedd
Take [1] of the created members and groups, to avoid special pilot behavior.
Pilot don't keep pbx group members
Change-Id: Ib8fd599ffc53c9743d2c160d324f2110548bcea9