# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.

use 5.14.0;
use strict;
use warnings;

use FindBin qw($RealBin);
use lib "$RealBin/../lib", "$RealBin/../../local/lib/perl5";

use Test::More tests => 85;
use QA::Util;
my $jsonrpc_get = QA::Util::get_jsonrpc_client('GET');

my @chars = (0..9, 'A'..'Z', 'a'..'z', '_[].');

our @tests = (
    { args => { callback => join('', @chars) },
      test => 'callback accepts all legal characters.' },
);
foreach my $char (qw(! ~ ` @ $ % ^ & * - + = { } ; : ' " < > / ? |),
                  '(', ')', '\\', '#', ',')
{
    push(@tests,
         { args  => { callback => "a$char" },
           error => "as your 'callback' parameter",
           test  => "$char is not valid in callback" });
}

$jsonrpc_get->bz_run_tests(method => 'Bugzilla.version', tests => \@tests);
