* '''Test plan for component''': click * '''Trunk URL''': lp:click * '''Ubuntu Package URL (LP)''': https://launchpad.net/ubuntu/+source/click == Dependents/Clients == * `ubuntu-app-launch` (starting applications) * `unity-scope-click` (apps UI) * `ubuntu-system-settings` (app update UI) == Test Plan == '''This test plan is not supposed to be complete; use it to guide your manual testing so they don't miss big functional areas that are part of the component; also this should be used as a guideline to inspire the exploratory testing which should be adapted smartly based on the real content of a MP''' * Install latest (devel-proposed) image on phone * Install freshly build MPs that are needed for landing * Ensure that the unity-scope-click tests pass: https://wiki.ubuntu.com/Process/Merges/TestPlan/unity-scope-click (we don't care about all the fine details of the scope, but at least make sure that app installation/uninstallation works) * Ensure that the ubuntu-system-settings Updates tests pass: https://wiki.ubuntu.com/Process/Merges/TestPlan/ubuntu-system-settings#Updates * Verify that you can uninstall an app from the app scope * Reboot to make sure that hooks don't explode: * Previously-installed apps should still be available and launchable * Check for errors in `/var/log/upstart/click-system-hooks.log` and `/home/phablet/.cache/upstart/click-user-hooks.log`, if either is present * There are currently some spurious errors like this in `click-user-hooks.log`, which we have not yet diagnosed but which can safely be ignored: {{{ ** (process:1617): WARNING **: Unable to get manifest for 'com.ubuntu.gallery' package: com.ubuntu.gallery does not exist in any database for user phablet ** (process:1617): CRITICAL **: manifest_version: assertion '*manifest != NULL' failed ** (process:1617): CRITICAL **: ubuntu_app_launch_triplet_to_app_id: assertion 'version != NULL' failed }}} == Suggested Automated Tests == This section serves as a backlog of tests that can be automated and added to the functional test suite for Click. We shouldn't need to run them manually as part of landings. === Click Package Installation === These tests require that two users are created on the system under test. These can be called 'test-user1' and 'test-user2'. A click package called 'com.ubuntu.test.test-user.test-click.click' needs to be created for the purpose of the test as well (TODO: provide instructions for creating the click package). [cjwatson: I'm not convinced that creating extra users is a sensible thing to do on a phone.] [cjwatson: These tests are currently broken as written; click install takes a file name, not a package name, and if you're installing a test package then you need to provide directions for creating it.] ==== Click Package Installation ==== 1. Execute 'sudo click install --user=test-user1 com.ubuntu.test.test-user.test-click.click'. 1. Confirm that the click package has been installed for user 'test-user1'. ==== Click Package Installation - all users ==== 1. Execute 'sudo click install --all-users com.ubuntu.test.test-user.test-click.click' 1. Confirm that the click package has been installed for all users. === Click Package Register === These tests require that two users are created on the system under test. These can be called 'test-user1' and 'test-user2'. A click package called 'com.ubuntu.test.test-user.test-click' should already have been installed for 'test-user1'. === Click Package Unregister === === Click Package Upgrades === === Click Package Creation === === Click Package List === ==== List All Installed Click Packages ==== 1. Execute 'click list' 1. Ensure that the expected Click packages are listed (defined somewhere?). ==== List Click Packages for phablet user ==== 1. Execute 'click list --user=phablet' 1. Ensure that the expected Click packages are listed (defined somewhere?). ==== List Click Packages for other user ==== This test assumes that a user called 'test-user1' has been created, and that a click package called 'com.ubuntu.test.test-user.test-click' has previously been installed for that user. 1. Execute 'click list --user=test-user1' 1. Ensure that 'com.ubuntu.test.test-user.test-click' is listed, along with those packages installed for all users. === Click Package Verify === === Click Changeroots === === Click Hooks === Verify that the system hooks run and correcty garbage-collect old user registrations: 1. Check the version of a currently-installed application (e.g. fbphoto): {{{ $ click list | grep fbphoto com.canonical.scopes.fbphotos 1.26 }}} 2. Obtain an older version of that same app (e.g. from popey's mirror:) {{{ $ wget http://popey.mooo.com/mirror/clicks/2015/07/2015-07-23-050001/com.canonical.scopes.fbphotos_1.24_armhf.click }}} 3. As the phablet user, install and register the older version of that app: {{{ $ pkcon install-local com.canonical.scopes.fbphotos_1.24_armhf.click }}} 4. Verify that the older version is now registered: {{{ $ click list | grep fbphoto com.canonical.scopes.fbphotos 1.24 }}} 5. Run the system hooks, either by rebooting the phone or via: {{{ $ sudo click hook run-system }}} 6. Verify that the app registration has been updated to the newer version: {{{ $ click list | grep fbphoto com.canonical.scopes.fbphotos 1.26 }}}