Tutorial with a real world sample
=====================================

Here is a fairly complete tutorial, this is a use case that comes from the real world.
At the end of the tutorial you will have a good understanding of rougail.

.. objectives:: Configuring (the setting of) your favorite web browser

    This tutorial will show you an example of Rougail use based on the
    *how to set a proxy* in the `Mozilla Firefox <https://www.mozilla.org/en-US/firefox/new/>`_ browser
    use case.

More precisely, this tutorial aims at reproducing :term:`variable`\ s behind this Mozilla Firefox settings page:

.. image:: images/firefox.png

We'll call the variables **configuration options** since that's what the variables represent in this case.

.. attention:: We are not coding a firefox plugin here.
          We are just going to handle some of the firefox configuration settings
          with Rougail.

Presentation of the firefox option configuration variables
-----------------------------------------------------------

Let's dive into this **configuration options validation** use case.
The values entered by the user have to be 

- validated
- consitent

At first glance we can see that we have a selection of five configuration options values that we need to fill in (they are highlighted here in this screenshot):

.. image:: images/firefox_01.png


.. toctree::
   :titlesonly:
   :caption: The firefox tutorial steps
   :hidden:

   preliminary
   proxymode
   tutorial

