Challenge Overview
For the Hercules client, we build a lot of web apps that run on an embedded environment. The web browser used on the embedded system is older and has compatibility issues with modern desktop browsers. This means we spend a lot of time working through compatibility issues.
In an effort to catch these issues earlier, we have generated a build of the embedded browser that includes Selenium support, and we have done work to document and integrate this embedded browser with Gitlab CI.
This challenge will implement actual tests against the TVWebApps project, implemented using Selenium and set up in Gitlab CI to run on QTBrowser.
Gitlab CI
https://docs.gitlab.com/ce/ci/
Your documentation and tested setup needs to cover configuring Gitlab CI to do these steps on every check-in for the TVWebApps project:
* Get the code
We can use custom runners for the project. You are encouraged to build the Selenium QTBrowser for Linux and just copy it in, instead of building it as part of the runner. You can just provide this as a binary in your submission.
Documentation
Your deployment instructions must contain information on how to do the steps necessary to configure the browser and tests in Gitlab, including information on how to run the tests, see the output, etc...
You should also include an updated .gitlab-ci.yml for the project.
Video
This challenge will implement actual tests against the TVWebApps project, implemented using Selenium and set up in Gitlab CI to run on QTBrowser.
Gitlab CI
https://docs.gitlab.com/ce/ci/
Your documentation and tested setup needs to cover configuring Gitlab CI to do these steps on every check-in for the TVWebApps project:
* Get the code
* Install the dependencies
* Run the tests and lint
* Deploy to Heroku if tests pass
Note that we already have TVWebApps set up for Gitlab CI, but this will integrate tests into the pipeline, using QTBrowser. The .gitlab-ci.yml in Gitlab is up-to-date.
Required tests:
For this challenge, we are going to target these tests for the TVWebApps Node project:
* Test the page loads properly
* Test that videos display on the main page
* Test the keyboard can be used to navigate between News Feeds and Watch Live in the main menu
* Test that hitting "Enter" on the keyboard when News Feeds is selected shows the provider menu
* Test that hitting up and down on the keyboard when the provider menu is showing works and new menu items can be selected
* Test that selecting a new provider in the menu updates the videos displayed and that all videos shown are for the selected provider
* Test that selecting "Watch Live" in the main menu displays the list of available live feeds
* Test that the list of videos for a provider can be scrolled using the arrow keys
* Test that the currently selected video displays the proper overlay
* Test that all videos shown have a title displayed on the video cell
* Test that all providers in the menu have videos available to show
* Test that the selection properly displays on the cells on "Watch Live" as the arrows on the keyboard are pressed
Gitlab CI runner* Deploy to Heroku if tests pass
Note that we already have TVWebApps set up for Gitlab CI, but this will integrate tests into the pipeline, using QTBrowser. The .gitlab-ci.yml in Gitlab is up-to-date.
Required tests:
For this challenge, we are going to target these tests for the TVWebApps Node project:
* Test the page loads properly
* Test that videos display on the main page
* Test the keyboard can be used to navigate between News Feeds and Watch Live in the main menu
* Test that hitting "Enter" on the keyboard when News Feeds is selected shows the provider menu
* Test that hitting up and down on the keyboard when the provider menu is showing works and new menu items can be selected
* Test that selecting a new provider in the menu updates the videos displayed and that all videos shown are for the selected provider
* Test that selecting "Watch Live" in the main menu displays the list of available live feeds
* Test that the list of videos for a provider can be scrolled using the arrow keys
* Test that the currently selected video displays the proper overlay
* Test that all videos shown have a title displayed on the video cell
* Test that all providers in the menu have videos available to show
* Test that the selection properly displays on the cells on "Watch Live" as the arrows on the keyboard are pressed
We can use custom runners for the project. You are encouraged to build the Selenium QTBrowser for Linux and just copy it in, instead of building it as part of the runner. You can just provide this as a binary in your submission.
Documentation
Your deployment instructions must contain information on how to do the steps necessary to configure the browser and tests in Gitlab, including information on how to run the tests, see the output, etc...
You should also include an updated .gitlab-ci.yml for the project.
Video
No video is required for this challenge
Submission
Your submission should include a Git patch file for commit hash 55003c0f564cb858795444feb095c7d4f21bbd2a.
Submission
Your submission should include a Git patch file for commit hash 55003c0f564cb858795444feb095c7d4f21bbd2a.