#!/usr/bin/perl -wT

#----------------------------------------------------------------------
# heading     : Security
# description : Local networks
# navigation  : 5000 5300
#----------------------------------------------------------------------
#----------------------------------------------------------------------
# copyright (C) 2002 Mitel Networks Corporation
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 		
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 		
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
# 
# Technical support for this program is available from Mitel Networks 
# Please visit our web site www.mitel.com/sme/ for details.
#----------------------------------------------------------------------

use strict;
use esmith::FormMagick::Panel::localnetworks;

my $fm = esmith::FormMagick::Panel::localnetworks->new();
$fm->display();



=pod

=head1 NAME

localnetworks -- add/remove local networks

=head2 DESCRIPTION

This screen allows the administrator to add or delete local networks.

=begin testing

use esmith::FormMagick::Tester;
use esmith::TestUtils;
use esmith::TestUtils;
use esmith::ConfigDB;
use esmith::AccountsDB;

my $panel = $Original_File;
my $ua = esmith::FormMagick::Tester->new();

my $c = esmith::ConfigDB->open();
my $a = esmith::AccountsDB->open();

is  (mode($panel), '4750',              "Check permissions on script");
ok  ($ua->get_panel($panel),            "ABOUT TO RUN L10N TESTS");
is  ($ua->{status}, 200,                "200 OK");
ok  ($ua->set_language("en-us"),        "Set language to U.S. English");
ok  ($ua->get_panel($panel),            "Get panel");
is  ($ua->{status}, 200,                "200 OK");
like($ua->{content}, qr/Local networks/, "Saw translated form title");


# 
# Testing creating local networks
#

ok  ($ua->get_panel($panel),            "ABOUT TO TEST CREATING NETWORK");
ok  ($ua->follow("Click here"),         "Follow 'create network' link");
is  ($ua->{status}, 200,                "200 OK");
like($ua->{content}, qr/Add a local network/,   "Saw page title");
like($ua->{content}, qr/Network address/,       "Saw network address field");
like($ua->{content}, qr/Subnet mask/,           "Saw subnet mask field");
like($ua->{content}, qr/Router/,                "Saw router field");
like($ua->{content}, qr/Add/,                   "Saw add button");

#
# checking error handling
#

$ua->field(networkAddress => '10.0.0.10000');
$ua->field(networkMask    => '10.0.0.10000');
$ua->click("Add");
# like($ua->{content}, qr/Invalid network address/,  "Saw network address validation message");
like($ua->{content}, qr/Invalid subnet mask/,      "Saw submask validation message");

#
# now let's actually add one
#

SKIP: {

    skip 10, "Unsafe!" unless destruction_ok();

    ok  ($ua->follow("Click here"),         "ACTUALLY ADDING A NETWORK");
    $ua->field(networkAddress => '10.0.0.0');
    $ua->field(networkMask    => '255.255.255.0');
    $ua->field(networkRouter  => '10.0.0.1');
    $ua->click("Add");
    like($ua->{content}, qr/Successfully added network/,  "Saw success message");

    ok  ($ua->follow("Click here"),         "ADDING NETWORK WITH DEFAULT ROUTER");
    $ua->field(networkAddress => '10.0.0.0');
    $ua->field(networkMask    => '255.255.255.0');

    ok  ($ua->follow("Remove"),         "REMOVING NETWORK");
    like($ua->{content}, qr/Are you sure/,  "Saw confirmation message");
    $ua->click("Remove");
    like($ua->{content}, qr/Successfully deleted/,  "Saw success message");

}

=end testing

=cut



__DATA__
<form title="Local networks" header="/etc/e-smith/web/common/head.tmpl" footer="/etc/e-smith/web/common/foot.tmpl">
    <page name="First" pre-event="print_status_message()">
        <description>FIRSTPAGE_DESC</description>
        <subroutine src="print_network_table()" />
    </page>
    <page name="Add" pre-event="turn_off_buttons()" post-event="add_network()">
        <title>ADD_TITLE</title> 
        <description>ADD_DESC</description>
        <field type="text" id="networkAddress" validation="ip_number">
            <label>NETWORK_ADDRESS</label>
        </field>
        <field type="text" id="networkMask" validation="subnet_mask">
            <label>SUBNET_MASK</label>
        </field>
        <field type="text" id="networkRouter" validation="ip_number">
            <label>ROUTER</label>
        </field>
        <subroutine src="print_button('ADD')" />
    </page>
    <page name="Remove" post-event="remove_network()">
        <title>REMOVE_TITLE</title>
        <description>REMOVE_DESC</description>
        <subroutine src="show_remove_network_summary()" />
    </page>
 
</form>