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 runs on Windows. This has worked alright to this point. This current challenge will add in Selenium WebDriver support to the app so we can properly run unit tests against Javascript in the browser.
Code
The embedded browser can be found here for Raspberry Pi: https://github.com/Metrological/buildroot
This repo holds a set of code that can be flashed to an rPi for testing. The app we are targeting is the "qtbrowser" executable. It does appear that the code is here as well: https://github.com/Metrological/qtbrowser
In the forum will be instructions for building the app on Windows. Windows will be the target of this challenge.
New functionality
This browser will be useful for validating HTML pages that will eventually be displayed in the embedded system using the same browser. This challenge is going to add Selenium WebDriver support to the app so we can eventually run unit tests with the browser, which will be important because the embedded browser doesn't currently support Selenium or unit tests.
For this challenge, we want to:
* Patch the code to allow Selenium WebDriver support
* Update the README with details on how to test Selenium support
* Update the documentation with some sample Selenium tests that can be used for validation
It does appear that Cisco has already done most of the work to support Selenium using the QT Browser:
https://github.com/cisco-open-source/qtwebdriver
We just need to ensure the same project will work for us here, document how it can be used, and provide sample tests to show it working properly.
App launching
The app should be easily launchable by double-clicking. This challenge will ensure it's also controllable via the Selenium WebDriver
Build
Your deployment instructions must contain information on how to:
* Get the code
* Install the dependencies for Windows
* Build the browser app
* Run the app, ensuring the results can be displayed in a window
* Ensure that Selenium can be tested against the browser
* Validate the changes above
This should mostly be handled already by the instructions already in the README. We just need Selenium specific items added to the docs.
Dependencies
Your build must output a standalone EXE. It cannot rely on any other dependencies like QT being installed - those should be statically linked into the executable. The goal is to be able to build an EXE that can be easily distributed to developers without requiring all sorts of dependency work.
Markdown
The deployment guide can be provided in Markdown format. Please make sure it is updated with the latest functionality of the app. No video is required.
Additional functionality
If the same functionality added above also applies and works on the Mac build, that would be considered additional functionality
Submission format
Your submission should be provided as a Git patch file against the commit hash mentioned in the forum. MAKE SURE TO TEST YOUR PATCH FILE!
No video is required for this challenge.