sub
setup : Test(setup) {
self->{js} = JavaScript::Writer->new;
}
sub
test_var_decl : Test(1) {
my
$js
= self->{js};
$js
->var(
'a'
);
is
"$js"
,
'var a;'
,
"var declaration"
;
}
sub
test_var_declinit : Test(1) {
my
$js
= self->{js};
$js
->var(
a
=> 1);
is
"$js"
,
'var a = 1;'
,
"var declaration with initialization"
;
}
sub
test_var_declinittie : Test(1) {
my
$js
= self->{js};
my
$a
= 1;
$js
->var(
a
=> \
$a
);
is
"$js"
,
'var a = 1;'
,
"var declaration with initialization, tie version"
;
}
sub
test_var_assignment : Test(1) {
my
$js
= self->{js};
my
$a
;
$js
->var(
a
=> \
$a
);
$a
= 1;
is
"$js"
,
"var a;a = 1;"
,
"variable assignment in perl can be written as javascript."
;
}
sub
test_var_assignment_after_declinit : Test(1) {
my
$js
= self->{js};
my
$a
= 1;
$js
->var(
a
=> \
$a
);
$a
= 42;
is
"$js"
,
"var a = 1;a = 42;"
,
"variable assignment in perl can be written as javascript."
;
}
sub
test_var_assigned_a_function : Test(1) {
my
$js
= self->{js};
my
$a
;
$js
->var(
a
=> \
$a
);
$a
=
$js
->new->somefunc(
"/foo/bar"
);
is
"$js"
,
'var a;a = somefunc("/foo/bar");'
;
}
sub
test_var_initiallzed_a_funcion : Test(1) {
my
$js
= self->{js};
my
$a
=
$js
->new->function(
sub
{
my
$js
=
shift
;
$js
->foobar();
}
);
$js
->var(
a
=> \
$a
);
is
"$js"
,
'var a = function(){foobar();};'
,
"another way to assign a function to a variable."
;
}
sub
test_var_operation : Test(1) {
SKIP: {
skip
"This feels quit difficult... "
, 1;
my
$js
= JavaScript::Writer->new();
my
$a
= 1;
my
$b
= 41;
$js
->var(
a
=> \
$a
);
$js
->var(
b
=> \
$b
);
$a
=
$a
+
$b
;
is
$js
,
"var a = 1;var b = 41;a = a + b;"
;
}
}
1;