From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- solenv/bin/modules/t/installer-packagelist.t | 40 +++++++++++++++++++ solenv/bin/modules/t/installer-profiles.t | 43 +++++++++++++++++++++ solenv/bin/modules/t/installer-scpzipfiles.t | 54 ++++++++++++++++++++++++++ solenv/bin/modules/t/installer-setupscript.t | 58 ++++++++++++++++++++++++++++ 4 files changed, 195 insertions(+) create mode 100644 solenv/bin/modules/t/installer-packagelist.t create mode 100644 solenv/bin/modules/t/installer-profiles.t create mode 100644 solenv/bin/modules/t/installer-scpzipfiles.t create mode 100644 solenv/bin/modules/t/installer-setupscript.t (limited to 'solenv/bin/modules/t') 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 () { + 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(); -- cgit v1.2.3