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

Here is a fairly complete tutorial, it 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:: 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 use case.

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

Let's dive into this **configuration options validation** use case.

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

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
   disabled
   boolean
  
.. 
   tutorial

