summaryrefslogtreecommitdiffstats
path: root/solenv/bin/modules/t
diff options
context:
space:
mode:
Diffstat (limited to 'solenv/bin/modules/t')
-rw-r--r--solenv/bin/modules/t/installer-packagelist.t40
-rw-r--r--solenv/bin/modules/t/installer-profiles.t43
-rw-r--r--solenv/bin/modules/t/installer-scpzipfiles.t54
-rw-r--r--solenv/bin/modules/t/installer-setupscript.t58
4 files changed, 195 insertions, 0 deletions
diff --git a/solenv/bin/modules/t/installer-packagelist.t b/solenv/bin/modules/t/installer-packagelist.t
new file mode 100644
index 000000000..c51683b14
--- /dev/null
+++ b/solenv/bin/modules/t/installer-packagelist.t
@@ -0,0 +1,40 @@
+#
+# This file is part of the LibreOffice project.
+#
+# 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/.
+#
+
+use strict;
+use warnings;
+
+use lib '.';
+
+use Test::More;
+
+BEGIN {
+ use_ok('installer::packagelist');
+}
+
+my @packagemodules = (
+ { allmodules => [qw(a b c d)] },
+ { allmodules => [qw(a b c)] },
+ { allmodules => [qw(e f g)] },
+ { allmodules => [qw(h)] },
+ { allmodules => [qw(a b g)] },
+);
+
+my @expected_packagemodules = (
+ { allmodules => [qw(d)] },
+ { allmodules => [qw(c)] },
+ { allmodules => [qw(e f)] },
+ { allmodules => [qw(h)] },
+ { allmodules => [qw(a b g)] },
+);
+
+installer::packagelist::remove_multiple_modules_packages(\@packagemodules);
+
+is_deeply(\@packagemodules, \@expected_packagemodules);
+
+done_testing();
diff --git a/solenv/bin/modules/t/installer-profiles.t b/solenv/bin/modules/t/installer-profiles.t
new file mode 100644
index 000000000..781792598
--- /dev/null
+++ b/solenv/bin/modules/t/installer-profiles.t
@@ -0,0 +1,43 @@
+#
+# This file is part of the LibreOffice project.
+#
+# 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/.
+#
+
+use strict;
+use warnings;
+
+use Test::More;
+
+use lib '.';
+
+use installer::profiles;
+
+my @input = map { "$_\n" } split "\n", <<'END';
+ [foo]
+1
+NOT SEEN
+ [bar]
+3
+ [foo]
+2
+[bar]
+4
+END
+
+my @expected = map { "$_\n" } split "\n", <<'END';
+[foo]
+1
+2
+[bar]
+3
+4
+END
+
+my $result = installer::profiles::sorting_profile(\@input);
+
+is_deeply($result, \@expected);
+
+done_testing();
diff --git a/solenv/bin/modules/t/installer-scpzipfiles.t b/solenv/bin/modules/t/installer-scpzipfiles.t
new file mode 100644
index 000000000..656e15f65
--- /dev/null
+++ b/solenv/bin/modules/t/installer-scpzipfiles.t
@@ -0,0 +1,54 @@
+#
+# This file is part of the LibreOffice project.
+#
+# 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/.
+#
+
+use strict;
+use warnings;
+
+use lib '.';
+
+use Test::More;
+
+use installer::scpzipfiles;
+
+my $vars = { foo => "bar" };
+
+my %lines;
+my $i = 0;
+while (<DATA>) {
+ push @{ $lines{$i++ % 3} }, $_;
+}
+
+my @file1 = @{ $lines{0} };
+my @file2 = @{ $lines{0} };
+
+# FIXME - Some of the files acted on by these methods contain variables
+# of the form "${foo}" which are currently ignored - but if "foo" was ever
+# added to the product list variables, they would suddenly start to be
+# replaced.
+#
+# We ought to come up with a better escaping mechanism, and change those
+# files to use it...
+
+installer::scpzipfiles::replace_all_ziplistvariables_in_file(\@file1, $vars);
+installer::scpzipfiles::replace_all_ziplistvariables_in_rtffile(\@file2, $vars);
+
+is_deeply(\@file1, $lines{1}, 'replace_all_ziplistvariables_in_file works');
+is_deeply(\@file2, $lines{2}, 'replace_all_ziplistvariables_in_rtffile works');
+
+done_testing();
+
+__DATA__
+This is a test
+This is a test
+This is a test
+A test of ${foo} replacement ${foo} but not ${bar}.
+A test of bar replacement bar but not ${bar}.
+A test of ${foo} replacement ${foo} but not ${bar}.
+A test of RTF $\{foo\} replacement $\{foo\} but not $\{bar\} or ${bar}.
+A test of RTF $\{foo\} replacement $\{foo\} but not $\{bar\} or ${bar}.
+A test of RTF bar replacement bar but not $\{bar\} or ${bar}.
diff --git a/solenv/bin/modules/t/installer-setupscript.t b/solenv/bin/modules/t/installer-setupscript.t
new file mode 100644
index 000000000..2994288e2
--- /dev/null
+++ b/solenv/bin/modules/t/installer-setupscript.t
@@ -0,0 +1,58 @@
+#
+# This file is part of the LibreOffice project.
+#
+# 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/.
+#
+
+use strict;
+use warnings;
+
+use Test::More;
+
+use lib '.';
+
+BEGIN {
+ use_ok('installer::setupscript', qw(
+ add_installationobject_to_variables
+ add_lowercase_productname_setupscriptvariable
+ add_predefined_folder
+ get_all_items_from_script
+ get_all_scriptvariables_from_installation_object
+ prepare_non_advertised_files
+ replace_all_setupscriptvariables_in_script
+ replace_preset_properties
+ resolve_lowercase_productname_setupscriptvariable
+ set_setupscript_name
+ ));
+}
+
+my @folders = (
+ { gid => '123' },
+ { gid => 'PREDEFINED_FOO' },
+ { gid => 'PREDEFINED_BAR' },
+);
+
+my @folderitems = (
+ { FolderID => 'PREDEFINED_AUTOSTART' },
+ { FolderID => 'PREDEFINED_BAR' },
+ { FolderID => '456' },
+);
+
+my @expected_folders = (
+ { gid => '123' },
+ { gid => 'PREDEFINED_FOO' },
+ { gid => 'PREDEFINED_BAR' },
+ {
+ ismultilingual => 0,
+ Name => "",
+ gid => 'PREDEFINED_AUTOSTART'
+ },
+);
+
+add_predefined_folder(\@folderitems, \@folders);
+
+is_deeply(\@folders, \@expected_folders);
+
+done_testing();