summaryrefslogtreecommitdiffstats
path: root/desktop/test
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/test')
-rw-r--r--desktop/test/deployment/active/Addons.xcu58
-rw-r--r--desktop/test/deployment/active/MANIFEST.MF3
-rw-r--r--desktop/test/deployment/active/META-INF/manifest.xml34
-rw-r--r--desktop/test/deployment/active/ProtocolHandler.xcu39
-rw-r--r--desktop/test/deployment/active/active_native.cxx276
-rw-r--r--desktop/test/deployment/active/active_python.py112
-rw-r--r--desktop/test/deployment/active/com/sun/star/comp/test/deployment/Dispatch.java95
-rw-r--r--desktop/test/deployment/active/com/sun/star/comp/test/deployment/Provider.java74
-rw-r--r--desktop/test/deployment/active/com/sun/star/comp/test/deployment/Services.java65
-rw-r--r--desktop/test/deployment/active/description.xml27
-rw-r--r--desktop/test/deployment/crashextension/Addons.xcu62
-rw-r--r--desktop/test/deployment/crashextension/META-INF/manifest.xml21
-rw-r--r--desktop/test/deployment/crashextension/ProtocolHandler.xcu20
-rw-r--r--desktop/test/deployment/crashextension/crash.pngbin0 -> 83469 bytes
-rw-r--r--desktop/test/deployment/crashextension/crashextension.component16
-rw-r--r--desktop/test/deployment/crashextension/crashextension.cxx152
-rw-r--r--desktop/test/deployment/crashextension/description.xml21
-rw-r--r--desktop/test/deployment/dependencies/broken-dependency.oxtbin0 -> 1655 bytes
-rw-r--r--desktop/test/deployment/dependencies/double-dependencies.oxtbin0 -> 1651 bytes
-rw-r--r--desktop/test/deployment/dependencies/empty-dependencies.oxtbin0 -> 1624 bytes
-rw-r--r--desktop/test/deployment/dependencies/funny-dependency.oxtbin0 -> 1730 bytes
-rw-r--r--desktop/test/deployment/dependencies/license-dependency.oxtbin0 -> 1891 bytes
-rw-r--r--desktop/test/deployment/dependencies/loversion35.oxtbin0 -> 1736 bytes
-rw-r--r--desktop/test/deployment/dependencies/loversion36.oxtbin0 -> 1736 bytes
-rw-r--r--desktop/test/deployment/dependencies/many-dependencies.oxtbin0 -> 1702 bytes
-rw-r--r--desktop/test/deployment/dependencies/maxversion33.oxtbin0 -> 1740 bytes
-rw-r--r--desktop/test/deployment/dependencies/maxversion34.oxtbin0 -> 1741 bytes
-rw-r--r--desktop/test/deployment/dependencies/maxversion35.oxtbin0 -> 1741 bytes
-rw-r--r--desktop/test/deployment/dependencies/maxversion36.oxtbin0 -> 1739 bytes
-rw-r--r--desktop/test/deployment/dependencies/minattr22.oxtbin0 -> 1690 bytes
-rw-r--r--desktop/test/deployment/dependencies/minattr23.oxtbin0 -> 1690 bytes
-rw-r--r--desktop/test/deployment/dependencies/minattr24.oxtbin0 -> 1690 bytes
-rw-r--r--desktop/test/deployment/dependencies/no-dependencies.oxtbin0 -> 1611 bytes
-rw-r--r--desktop/test/deployment/dependencies/no-description.oxtbin0 -> 1360 bytes
-rw-r--r--desktop/test/deployment/dependencies/readme.txt73
-rw-r--r--desktop/test/deployment/dependencies/unknown-dependency.oxtbin0 -> 1633 bytes
-rw-r--r--desktop/test/deployment/dependencies/version10000.oxtbin0 -> 1668 bytes
-rw-r--r--desktop/test/deployment/dependencies/version21.oxtbin0 -> 1666 bytes
-rw-r--r--desktop/test/deployment/dependencies/version21ns.oxtbin0 -> 1661 bytes
-rw-r--r--desktop/test/deployment/dependencies/version21other.oxtbin0 -> 1679 bytes
-rw-r--r--desktop/test/deployment/dependencies/version22.oxtbin0 -> 1666 bytes
-rw-r--r--desktop/test/deployment/dependencies/version23.oxtbin0 -> 1666 bytes
-rw-r--r--desktop/test/deployment/dependencies/version34.oxtbin0 -> 1721 bytes
-rw-r--r--desktop/test/deployment/dependencies/version35.oxtbin0 -> 1721 bytes
-rw-r--r--desktop/test/deployment/dependencies/versionempty.oxtbin0 -> 1675 bytes
-rw-r--r--desktop/test/deployment/dependencies/versionnone.oxtbin0 -> 1674 bytes
-rw-r--r--desktop/test/deployment/description/desc1.oxtbin0 -> 2096 bytes
-rw-r--r--desktop/test/deployment/description/desc2.oxtbin0 -> 2091 bytes
-rw-r--r--desktop/test/deployment/description/desc3.oxtbin0 -> 2070 bytes
-rw-r--r--desktop/test/deployment/description/desc4.oxtbin0 -> 2061 bytes
-rw-r--r--desktop/test/deployment/description/desc5.oxtbin0 -> 2041 bytes
-rw-r--r--desktop/test/deployment/description/readme.txt23
-rw-r--r--desktop/test/deployment/display_name/name1.oxtbin0 -> 704 bytes
-rw-r--r--desktop/test/deployment/display_name/name2.oxtbin0 -> 699 bytes
-rw-r--r--desktop/test/deployment/display_name/name3.oxtbin0 -> 681 bytes
-rw-r--r--desktop/test/deployment/display_name/name4.oxtbin0 -> 675 bytes
-rw-r--r--desktop/test/deployment/display_name/name5.oxtbin0 -> 654 bytes
-rw-r--r--desktop/test/deployment/display_name/readme.txt26
-rw-r--r--desktop/test/deployment/executable_content/build/hello.c34
-rw-r--r--desktop/test/deployment/executable_content/build/makefile.mk42
-rw-r--r--desktop/test/deployment/executable_content/build/readme.txt2
-rw-r--r--desktop/test/deployment/executable_content/hello.oxtbin0 -> 35048 bytes
-rw-r--r--desktop/test/deployment/executable_content/readme.txt12
-rw-r--r--desktop/test/deployment/identifier/explicit/identifier.oxtbin0 -> 1660 bytes
-rw-r--r--desktop/test/deployment/identifier/legacy/identifier.oxtbin0 -> 1634 bytes
-rw-r--r--desktop/test/deployment/identifier/readme.txt24
-rw-r--r--desktop/test/deployment/locationtest/LocationTest.idl27
-rw-r--r--desktop/test/deployment/locationtest/LocationTest.java156
-rw-r--r--desktop/test/deployment/locationtest/LocationTest.odtbin0 -> 7681 bytes
-rw-r--r--desktop/test/deployment/locationtest/MANIFEST.MF2
-rw-r--r--desktop/test/deployment/locationtest/description.xml30
-rw-r--r--desktop/test/deployment/locationtest/makefile.mk76
-rw-r--r--desktop/test/deployment/locationtest/manifest.xml5
-rw-r--r--desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/MANIFEST.MF2
-rw-r--r--desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/OptionsEventHandler.java417
-rw-r--r--desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/makefile.mk44
-rw-r--r--desktop/test/deployment/options/leaf1.oxtbin0 -> 8308 bytes
-rw-r--r--desktop/test/deployment/options/leaf1mod.oxtbin0 -> 8310 bytes
-rw-r--r--desktop/test/deployment/options/leaf2.oxtbin0 -> 8338 bytes
-rw-r--r--desktop/test/deployment/options/leaves1.oxtbin0 -> 21158 bytes
-rw-r--r--desktop/test/deployment/options/leaves2.oxtbin0 -> 21153 bytes
-rw-r--r--desktop/test/deployment/options/leaves3.oxtbin0 -> 21080 bytes
-rw-r--r--desktop/test/deployment/options/modules1.oxtbin0 -> 24317 bytes
-rw-r--r--desktop/test/deployment/options/modules2.oxtbin0 -> 24196 bytes
-rw-r--r--desktop/test/deployment/options/nodes1.oxtbin0 -> 1882 bytes
-rw-r--r--desktop/test/deployment/options/nodes2.oxtbin0 -> 24287 bytes
-rw-r--r--desktop/test/deployment/options/nodes3.oxtbin0 -> 24315 bytes
-rw-r--r--desktop/test/deployment/options/nodes4.oxtbin0 -> 24318 bytes
-rw-r--r--desktop/test/deployment/options/nodes5.oxtbin0 -> 12616 bytes
-rw-r--r--desktop/test/deployment/options/readme.txt200
-rw-r--r--desktop/test/deployment/passive/Addons.xcu74
-rw-r--r--desktop/test/deployment/passive/MANIFEST.MF3
-rw-r--r--desktop/test/deployment/passive/META-INF/manifest.xml32
-rw-r--r--desktop/test/deployment/passive/ProtocolHandler.xcu39
-rw-r--r--desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Dispatch.java95
-rw-r--r--desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Provider.java74
-rw-r--r--desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Services.java42
-rw-r--r--desktop/test/deployment/passive/description.xml27
-rw-r--r--desktop/test/deployment/passive/help/en/help.tree16
-rw-r--r--desktop/test/deployment/passive/help/en/main.xhp35
-rw-r--r--desktop/test/deployment/passive/passive_java.component29
-rw-r--r--desktop/test/deployment/passive/passive_native.component29
-rw-r--r--desktop/test/deployment/passive/passive_native.cxx248
-rw-r--r--desktop/test/deployment/passive/passive_python.component29
-rw-r--r--desktop/test/deployment/passive/passive_python.py93
-rw-r--r--desktop/test/deployment/simple_license/BadDesc.oxtbin0 -> 9663 bytes
-rw-r--r--desktop/test/deployment/simple_license/BadNamespace.oxtbin0 -> 9736 bytes
-rw-r--r--desktop/test/deployment/simple_license/BadRoot.oxtbin0 -> 9073 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale1.oxtbin0 -> 2126 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale2.oxtbin0 -> 2121 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale3.oxtbin0 -> 2101 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale4.oxtbin0 -> 2094 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale5.oxtbin0 -> 2072 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale6.oxtbin0 -> 1397 bytes
-rw-r--r--desktop/test/deployment/simple_license/LongLic.oxtbin0 -> 9521 bytes
-rw-r--r--desktop/test/deployment/simple_license/MissingLic.oxtbin0 -> 9214 bytes
-rw-r--r--desktop/test/deployment/simple_license/MissingLicRef.oxtbin0 -> 9332 bytes
-rw-r--r--desktop/test/deployment/simple_license/NoDefLang.oxtbin0 -> 9360 bytes
-rw-r--r--desktop/test/deployment/simple_license/NoDesc.oxtbin0 -> 8722 bytes
-rw-r--r--desktop/test/deployment/simple_license/NoLang.oxtbin0 -> 9217 bytes
-rw-r--r--desktop/test/deployment/simple_license/Prefix.oxtbin0 -> 1112 bytes
-rw-r--r--desktop/test/deployment/simple_license/ShortLicense.oxtbin0 -> 9381 bytes
-rw-r--r--desktop/test/deployment/simple_license/ShortLicenseShared.oxtbin0 -> 9382 bytes
-rw-r--r--desktop/test/deployment/simple_license/suppress_license.oxtbin0 -> 2143 bytes
-rw-r--r--desktop/test/deployment/simple_license/tests_simple_license.odtbin0 -> 16629 bytes
-rw-r--r--desktop/test/deployment/update/changing_display_name/change1.oxtbin0 -> 1650 bytes
-rw-r--r--desktop/test/deployment/update/changing_display_name/change1_mod.oxtbin0 -> 1673 bytes
-rw-r--r--desktop/test/deployment/update/changing_display_name/readme.txt13
-rw-r--r--desktop/test/deployment/update/changing_display_name/update1/change1.oxtbin0 -> 1675 bytes
-rw-r--r--desktop/test/deployment/update/changing_display_name/update1/change1.update.xml27
-rw-r--r--desktop/test/deployment/update/changing_display_name/update2/change1.oxtbin0 -> 1687 bytes
-rw-r--r--desktop/test/deployment/update/changing_display_name/update2/change1.update.xml27
-rw-r--r--desktop/test/deployment/update/default_url/default1.oxtbin0 -> 1544 bytes
-rw-r--r--desktop/test/deployment/update/default_url/default2.oxtbin0 -> 1544 bytes
-rw-r--r--desktop/test/deployment/update/default_url/readme.txt9
-rw-r--r--desktop/test/deployment/update/default_url/update/default1.oxtbin0 -> 1546 bytes
-rw-r--r--desktop/test/deployment/update/default_url/update/default1.update.xml27
-rw-r--r--desktop/test/deployment/update/default_url/update/default2.oxtbin0 -> 1546 bytes
-rw-r--r--desktop/test/deployment/update/default_url/update/default2.update.xml27
-rw-r--r--desktop/test/deployment/update/default_url/update/feed1.xml50
-rw-r--r--desktop/test/deployment/update/defect/fail1.oxtbin0 -> 2189 bytes
-rw-r--r--desktop/test/deployment/update/defect/fail2.oxtbin0 -> 2188 bytes
-rw-r--r--desktop/test/deployment/update/defect/fail3.oxtbin0 -> 2188 bytes
-rw-r--r--desktop/test/deployment/update/defect/fail4.oxtbin0 -> 2189 bytes
-rw-r--r--desktop/test/deployment/update/defect/info1.oxtbin0 -> 2188 bytes
-rw-r--r--desktop/test/deployment/update/defect/info2.oxtbin0 -> 2187 bytes
-rw-r--r--desktop/test/deployment/update/defect/info3.oxtbin0 -> 2187 bytes
-rw-r--r--desktop/test/deployment/update/defect/readme.txt15
-rw-r--r--desktop/test/deployment/update/defect/update/fail1.oxtbin0 -> 2193 bytes
-rw-r--r--desktop/test/deployment/update/defect/update/fail1.update.xml27
-rw-r--r--desktop/test/deployment/update/defect/update/fail2.oxtbin0 -> 2436 bytes
-rw-r--r--desktop/test/deployment/update/defect/update/fail2.update.xml27
-rw-r--r--desktop/test/deployment/update/defect/update/fail3.oxtbin0 -> 2396 bytes
-rw-r--r--desktop/test/deployment/update/defect/update/fail3.update.xml27
-rw-r--r--desktop/test/deployment/update/defect/update/fail4.oxt0
-rw-r--r--desktop/test/deployment/update/defect/update/fail4.update.xml27
-rw-r--r--desktop/test/deployment/update/defect/update/info1.update.xml0
-rw-r--r--desktop/test/deployment/update/defect/update/info2.update.xml1
-rw-r--r--desktop/test/deployment/update/defect/update/info3.oxtbin0 -> 2189 bytes
-rw-r--r--desktop/test/deployment/update/defect/update/info3.update.xml27
-rw-r--r--desktop/test/deployment/update/dependencies/publisher_en.html9
-rw-r--r--desktop/test/deployment/update/dependencies/readme.txt23
-rw-r--r--desktop/test/deployment/update/dependencies/release-notes_en.html8
-rw-r--r--desktop/test/deployment/update/dependencies/update-dependencies.oxtbin0 -> 1751 bytes
-rw-r--r--desktop/test/deployment/update/dependencies/update/update-dependencies.update.xml62
-rw-r--r--desktop/test/deployment/update/license/lic1.oxtbin0 -> 3608 bytes
-rw-r--r--desktop/test/deployment/update/license/lic2.oxtbin0 -> 3625 bytes
-rw-r--r--desktop/test/deployment/update/license/lic3.oxtbin0 -> 3624 bytes
-rw-r--r--desktop/test/deployment/update/license/readme.txt9
-rw-r--r--desktop/test/deployment/update/license/update/lic1.oxtbin0 -> 3610 bytes
-rw-r--r--desktop/test/deployment/update/license/update/lic1.update.xml27
-rw-r--r--desktop/test/deployment/update/license/update/lic2.oxtbin0 -> 3627 bytes
-rw-r--r--desktop/test/deployment/update/license/update/lic2.update.xml27
-rw-r--r--desktop/test/deployment/update/license/update/lic3.oxtbin0 -> 3626 bytes
-rw-r--r--desktop/test/deployment/update/license/update/lic3.update.xml27
-rw-r--r--desktop/test/deployment/update/platform/all1.oxtbin0 -> 692 bytes
-rw-r--r--desktop/test/deployment/update/platform/all2.oxtbin0 -> 702 bytes
-rw-r--r--desktop/test/deployment/update/platform/all3.oxtbin0 -> 297 bytes
-rw-r--r--desktop/test/deployment/update/platform/freebsd_x86.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/freebsd_x86_64.oxtbin0 -> 711 bytes
-rw-r--r--desktop/test/deployment/update/platform/invalid1.oxtbin0 -> 653 bytes
-rw-r--r--desktop/test/deployment/update/platform/invalid2.oxtbin0 -> 653 bytes
-rw-r--r--desktop/test/deployment/update/platform/invalid3.oxtbin0 -> 655 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_arm_eabi.oxtbin0 -> 709 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_arm_oabi.oxtbin0 -> 710 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_ia64.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_mips64_eb.oxtbin0 -> 805 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_mips64_el.oxtbin0 -> 804 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_mips_eb.oxtbin0 -> 709 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_mips_el.oxtbin0 -> 708 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_powerpc.oxtbin0 -> 708 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_powerpc64.oxtbin0 -> 710 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_s390x.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_sparc.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_x86.oxtbin0 -> 705 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_x86_64.oxtbin0 -> 708 bytes
-rw-r--r--desktop/test/deployment/update/platform/macosx_powerpc.oxtbin0 -> 710 bytes
-rw-r--r--desktop/test/deployment/update/platform/macosx_x86.oxtbin0 -> 707 bytes
-rw-r--r--desktop/test/deployment/update/platform/mul1.oxtbin0 -> 952 bytes
-rw-r--r--desktop/test/deployment/update/platform/os2_x86.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/readme.txt50
-rw-r--r--desktop/test/deployment/update/platform/solaris_sparc.oxtbin0 -> 709 bytes
-rw-r--r--desktop/test/deployment/update/platform/solaris_x86.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/windows_x86.oxtbin0 -> 707 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub1.oxtbin0 -> 1882 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub10.oxtbin0 -> 1742 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub11.oxtbin0 -> 1601 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub2.oxtbin0 -> 1866 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub3.oxtbin0 -> 1829 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub4.oxtbin0 -> 1812 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub5.oxtbin0 -> 1769 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub6.oxtbin0 -> 1814 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub7.oxtbin0 -> 1769 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub8.oxtbin0 -> 1853 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub9.oxtbin0 -> 1779 bytes
-rw-r--r--desktop/test/deployment/update/publisher/publisher_de-DE-altmark.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_de-DE.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_de.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en-GB.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en-US-region1.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en-US-region2.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en-US.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en-region3.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en.html9
-rw-r--r--desktop/test/deployment/update/publisher/readme.txt212
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_de-DE-altmark.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_de-DE.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_de.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en-GB.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en-US-region1.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en-US-region2.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en-US.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en-region3.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en.html8
-rw-r--r--desktop/test/deployment/update/publisher/update/pub1.oxtbin0 -> 1885 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub1.update.xml53
-rw-r--r--desktop/test/deployment/update/publisher/update/pub10.oxtbin0 -> 1744 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub11.oxtbin0 -> 1603 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub2.oxtbin0 -> 1871 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub2.update.xml51
-rw-r--r--desktop/test/deployment/update/publisher/update/pub3.oxtbin0 -> 1833 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub3.update.xml47
-rw-r--r--desktop/test/deployment/update/publisher/update/pub4.oxtbin0 -> 1815 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub4.update.xml45
-rw-r--r--desktop/test/deployment/update/publisher/update/pub5.oxtbin0 -> 1774 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub5.update.xml41
-rw-r--r--desktop/test/deployment/update/publisher/update/pub6.oxtbin0 -> 1816 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub6.update.xml41
-rw-r--r--desktop/test/deployment/update/publisher/update/pub7.oxtbin0 -> 1771 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub7.update.xml41
-rw-r--r--desktop/test/deployment/update/publisher/update/pub8.oxtbin0 -> 1855 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub9.oxtbin0 -> 1781 bytes
-rw-r--r--desktop/test/deployment/update/readme.txt58
-rw-r--r--desktop/test/deployment/update/simple/plain1.oxtbin0 -> 1642 bytes
-rw-r--r--desktop/test/deployment/update/simple/plain2.oxtbin0 -> 1643 bytes
-rw-r--r--desktop/test/deployment/update/simple/plain3.oxtbin0 -> 1643 bytes
-rw-r--r--desktop/test/deployment/update/simple/readme.txt31
-rw-r--r--desktop/test/deployment/update/simple/update/plain1.oxtbin0 -> 1645 bytes
-rw-r--r--desktop/test/deployment/update/simple/update/plain1.update.xml27
-rw-r--r--desktop/test/deployment/update/simple/update/plain2.oxtbin0 -> 1645 bytes
-rw-r--r--desktop/test/deployment/update/simple/update/plain2.update.xml27
-rw-r--r--desktop/test/deployment/update/simple/update/plain3.oxtbin0 -> 1645 bytes
-rw-r--r--desktop/test/deployment/update/simple/update/plain3.update.xml27
-rw-r--r--desktop/test/deployment/update/updatefeed/feed1.oxtbin0 -> 2184 bytes
-rw-r--r--desktop/test/deployment/update/updatefeed/feed2.oxtbin0 -> 2184 bytes
-rw-r--r--desktop/test/deployment/update/updatefeed/update/feed1.oxtbin0 -> 2184 bytes
-rw-r--r--desktop/test/deployment/update/updatefeed/update/feed1.update.xml27
-rw-r--r--desktop/test/deployment/update/updatefeed/update/feed1.xml50
-rw-r--r--desktop/test/deployment/update/updatefeed/update/feed2.oxtbin0 -> 2184 bytes
-rw-r--r--desktop/test/deployment/update/updatefeed/update/feed2.update.xml27
-rw-r--r--desktop/test/deployment/update/updateinfocreation/build/MANIFEST.MF2
-rw-r--r--desktop/test/deployment/update/updateinfocreation/build/TestExtension.idl27
-rw-r--r--desktop/test/deployment/update/updateinfocreation/build/TestExtension.java156
-rw-r--r--desktop/test/deployment/update/updateinfocreation/build/description.xml30
-rw-r--r--desktop/test/deployment/update/updateinfocreation/build/makefile.mk80
-rw-r--r--desktop/test/deployment/update/updateinfocreation/build/manifest.xml5
-rw-r--r--desktop/test/deployment/update/updateinfocreation/readme.txt38
-rw-r--r--desktop/test/deployment/update/updateinfocreation/update/updateinfo.oxtbin0 -> 4295 bytes
-rw-r--r--desktop/test/deployment/update/updateinfocreation/updateinfo.oxtbin0 -> 4295 bytes
-rw-r--r--desktop/test/deployment/update/website_update/readme.txt133
-rw-r--r--desktop/test/deployment/update/website_update/update/web1.oxtbin0 -> 1695 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web1.update.xml37
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_de-DE-altmark.html18
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_de-DE.html18
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_de.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en-GB.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en-US-region1.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en-US-region2.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en-US.html20
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en-region3.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web2.oxtbin0 -> 1695 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web2.update.xml36
-rw-r--r--desktop/test/deployment/update/website_update/update/web3.oxtbin0 -> 1695 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web3.update.xml34
-rw-r--r--desktop/test/deployment/update/website_update/update/web4.oxtbin0 -> 1695 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web4.update.xml33
-rw-r--r--desktop/test/deployment/update/website_update/update/web5.oxtbin0 -> 1695 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web5.update.xml31
-rw-r--r--desktop/test/deployment/update/website_update/update/web6.oxtbin0 -> 1640 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web6/description.xml28
-rw-r--r--desktop/test/deployment/update/website_update/update/web6/readme.txt5
-rw-r--r--desktop/test/deployment/update/website_update/update/web7.oxtbin0 -> 1897 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web7/description.xml53
-rw-r--r--desktop/test/deployment/update/website_update/update/web7/readme.txt5
-rw-r--r--desktop/test/deployment/update/website_update/web1.oxtbin0 -> 1693 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web2.oxtbin0 -> 1693 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web3.oxtbin0 -> 1693 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web4.oxtbin0 -> 1693 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web5.oxtbin0 -> 1693 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web6.oxtbin0 -> 1638 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web7.oxtbin0 -> 1894 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/readme.txt18
-rw-r--r--desktop/test/deployment/update/wrong_url/update/url1.oxtbin0 -> 2192 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/update/url1.update.xml28
-rw-r--r--desktop/test/deployment/update/wrong_url/update/url2.oxtbin0 -> 2206 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/update/url2.update.xml27
-rw-r--r--desktop/test/deployment/update/wrong_url/update/wrongdownload1.update.xml28
-rw-r--r--desktop/test/deployment/update/wrong_url/update/wrongdownload2.update.xml28
-rw-r--r--desktop/test/deployment/update/wrong_url/update/wrongdownload3.update.xml28
-rw-r--r--desktop/test/deployment/update/wrong_url/url1.oxtbin0 -> 2190 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/url2.oxtbin0 -> 2205 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/url3.oxtbin0 -> 2204 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/wrongdownload1.oxtbin0 -> 2194 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/wrongdownload2.oxtbin0 -> 2194 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/wrongdownload3.oxtbin0 -> 2194 bytes
-rw-r--r--desktop/test/deployment/version/readme.txt76
-rw-r--r--desktop/test/deployment/version/version_0.0/dependency.oxtbin0 -> 1657 bytes
-rw-r--r--desktop/test/deployment/version/version_0.0/license.oxtbin0 -> 1733 bytes
-rw-r--r--desktop/test/deployment/version/version_0.0/plain.oxtbin0 -> 1618 bytes
-rw-r--r--desktop/test/deployment/version/version_1.02.4.7.0/dependency.oxtbin0 -> 1662 bytes
-rw-r--r--desktop/test/deployment/version/version_1.02.4.7.0/license.oxtbin0 -> 1738 bytes
-rw-r--r--desktop/test/deployment/version/version_1.02.4.7.0/plain.oxtbin0 -> 1624 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.15.3/dependency.oxtbin0 -> 1662 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.15.3/license.oxtbin0 -> 1738 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.15.3/plain.oxtbin0 -> 1624 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.3/dependency.oxtbin0 -> 1659 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.3/license.oxtbin0 -> 1735 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.3/plain.oxtbin0 -> 1620 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.4.7/dependency.oxtbin0 -> 1661 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.4.7/license.oxtbin0 -> 1737 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.4.7/plain.oxtbin0 -> 1623 bytes
-rw-r--r--desktop/test/deployment/version/version_badelement/dependency.oxtbin0 -> 1654 bytes
-rw-r--r--desktop/test/deployment/version/version_badelement/license.oxtbin0 -> 1731 bytes
-rw-r--r--desktop/test/deployment/version/version_badelement/plain.oxtbin0 -> 1616 bytes
-rw-r--r--desktop/test/deployment/version/version_badvalue/dependency.oxtbin0 -> 1657 bytes
-rw-r--r--desktop/test/deployment/version/version_badvalue/license.oxtbin0 -> 1733 bytes
-rw-r--r--desktop/test/deployment/version/version_badvalue/plain.oxtbin0 -> 1618 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_0.0/dependency.oxtbin0 -> 1618 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_1.02.4.7.0/dependency.oxtbin0 -> 1624 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_1.2.15.3/dependency.oxtbin0 -> 1624 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_1.2.3/dependency.oxtbin0 -> 1620 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_1.2.4.7/dependency.oxtbin0 -> 1623 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_badelement/dependency.oxtbin0 -> 1616 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_badvalue/dependency.oxtbin0 -> 1618 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_none/dependency.oxtbin0 -> 1598 bytes
-rw-r--r--desktop/test/deployment/version/version_none/dependency.oxtbin0 -> 1645 bytes
-rw-r--r--desktop/test/deployment/version/version_none/license.oxtbin0 -> 1722 bytes
-rw-r--r--desktop/test/deployment/version/version_none/plain.oxtbin0 -> 1598 bytes
359 files changed, 5802 insertions, 0 deletions
diff --git a/desktop/test/deployment/active/Addons.xcu b/desktop/test/deployment/active/Addons.xcu
new file mode 100644
index 0000000000..d3b481ef43
--- /dev/null
+++ b/desktop/test/deployment/active/Addons.xcu
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="Addons">
+ <node o:name="AddonUI">
+ <node o:name="OfficeMenuBar">
+ <node o:name="org.openoffice.test.desktop.deployment.active"
+ o:op="replace">
+ <prop o:name="Title" xml:lang="en-US">
+ <value>active</value>
+ </prop>
+ <node o:name="Submenu">
+ <node o:name="1" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_native:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>native</value>
+ </prop>
+ </node>
+ <node o:name="2" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_java:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>java</value>
+ </prop>
+ </node>
+ <node o:name="3" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_python:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>python</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/active/MANIFEST.MF b/desktop/test/deployment/active/MANIFEST.MF
new file mode 100644
index 0000000000..63480874dd
--- /dev/null
+++ b/desktop/test/deployment/active/MANIFEST.MF
@@ -0,0 +1,3 @@
+Sealed: true
+RegistrationClassName: com.sun.star.comp.test.deployment.active_java.Services
+UNO-Type-Path:
diff --git a/desktop/test/deployment/active/META-INF/manifest.xml b/desktop/test/deployment/active/META-INF/manifest.xml
new file mode 100644
index 0000000000..7cca7841d4
--- /dev/null
+++ b/desktop/test/deployment/active/META-INF/manifest.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<m:manifest xmlns:m="http://openoffice.org/2001/manifest">
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="Addons.xcu"/>
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="ProtocolHandler.xcu"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-component;type=native;platform=@PLATFORM@"
+ m:full-path="active_native.uno@SHARED_EXTENSION@"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-component;type=Java"
+ m:full-path="active_java.jar"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-component;type=Python"
+ m:full-path="active_python.py"/>
+</m:manifest>
diff --git a/desktop/test/deployment/active/ProtocolHandler.xcu b/desktop/test/deployment/active/ProtocolHandler.xcu
new file mode 100644
index 0000000000..984ed981d9
--- /dev/null
+++ b/desktop/test/deployment/active/ProtocolHandler.xcu
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="ProtocolHandler">
+ <node o:name="HandlerSet">
+ <node o:name="com.sun.star.test.deployment.active_native" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_native:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.active_java" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_java:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.active_python" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.active_python:*</value>
+ </prop>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/active/active_native.cxx b/desktop/test/deployment/active/active_native.cxx
new file mode 100644
index 0000000000..753f0da773
--- /dev/null
+++ b/desktop/test/deployment/active/active_native.cxx
@@ -0,0 +1,276 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <sal/config.h>
+
+#include <cassert>
+
+#include <com/sun/star/awt/MessageBoxButtons.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/awt/Toolkit.hpp>
+#include <com/sun/star/awt/XMessageBox.hpp>
+#include <com/sun/star/awt/XWindowPeer.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/frame/DispatchDescriptor.hpp>
+#include <com/sun/star/frame/Desktop.hpp>
+#include <com/sun/star/frame/XDispatch.hpp>
+#include <com/sun/star/frame/XDispatchProvider.hpp>
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/frame/XStatusListener.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/registry/XRegistryKey.hpp>
+#include <com/sun/star/uno/DeploymentException.hpp>
+#include <com/sun/star/uno/Exception.hpp>
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/uno/RuntimeException.hpp>
+#include <com/sun/star/uno/Sequence.hxx>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/uno/XInterface.hpp>
+#include <com/sun/star/util/URL.hpp>
+#include <cppuhelper/factory.hxx>
+#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implementationentry.hxx>
+#include <cppuhelper/supportsservice.hxx>
+#include <cppuhelper/weak.hxx>
+#include <rtl/textenc.h>
+#include <rtl/ustring.hxx>
+#include <sal/log.hxx>
+#include <sal/types.h>
+#include <uno/lbnames.h>
+
+namespace {
+
+class Provider:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatchProvider >
+{
+public:
+ Provider(const Provider&) = delete;
+ const Provider& operator=(const Provider&) = delete;
+
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ { return static_cast< cppu::OWeakObject * >(new Provider(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames();
+
+private:
+ explicit Provider(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { assert(context.is()); }
+
+ virtual ~Provider() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName() override
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName) override
+ { return cppu::supportsService(this, ServiceName); }
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() override
+ { return static_getSupportedServiceNames(); }
+
+ virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32) override;
+
+ virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+ SAL_CALL queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests) override;
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Provider::static_getImplementationName() {
+ return rtl::OUString("com.sun.star.comp.test.deployment.active_native");
+}
+
+css::uno::Sequence< rtl::OUString > Provider::static_getSupportedServiceNames()
+{
+ rtl::OUString name("com.sun.star.test.deployment.active_native");
+ return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
+css::uno::Reference< css::frame::XDispatch > Provider::queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32)
+{
+ css::uno::Reference< css::frame::XDispatch > dispatch;
+ if (!(context_->getValueByName(
+ "/singletons/com.sun.star.test.deployment."
+ "active_native_singleton") >>=
+ dispatch) ||
+ !dispatch.is())
+ {
+ throw css::uno::DeploymentException(
+ "component context fails to supply singleton"
+ " com.sun.star.test.deployment.active_native_singleton of type"
+ " com.sun.star.frame.XDispatch",
+ context_);
+ }
+ return dispatch;
+}
+
+css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+Provider::queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+{
+ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > s(
+ Requests.getLength());
+ for (sal_Int32 i = 0; i < s.getLength(); ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+}
+
+class Dispatch:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatch >
+{
+public:
+ Dispatch(const Dispatch&) = delete;
+ const Dispatch& operator=(const Dispatch&) = delete;
+
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ { return static_cast< cppu::OWeakObject * >(new Dispatch(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames()
+ { return css::uno::Sequence< rtl::OUString >(); }
+
+private:
+ explicit Dispatch(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { assert(context.is()); }
+
+ virtual ~Dispatch() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName() override
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName) override
+ { return cppu::supportsService(this, ServiceName); }
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() override
+ { return static_getSupportedServiceNames(); }
+
+ virtual void SAL_CALL dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &) override;
+
+ virtual void SAL_CALL addStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &) override
+ {}
+
+ virtual void SAL_CALL removeStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &) override
+ {}
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Dispatch::static_getImplementationName() {
+ return rtl::OUString(
+ "com.sun.star.comp.test.deployment.active_native_singleton");
+}
+
+void Dispatch::dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+{
+ css::uno::Reference< css::frame::XDesktop2 > xDesktop = css::frame::Desktop::create(context_);
+ css::uno::Reference< css::frame::XFrame > xFrame = xDesktop->getCurrentFrame();
+ css::uno::Reference< css::awt::XWindowPeer > xWindowPeer( xFrame->getComponentWindow(), css::uno::UNO_QUERY_THROW );
+ css::uno::Reference< css::awt::XToolkit2 > xToolkit = css::awt::Toolkit::create(context_);
+ css::uno::Reference< css::awt::XMessageBox > box(
+ xToolkit->createMessageBox(
+ xWindowPeer,
+ css::awt::MessageBoxType_INFOBOX,
+ css::awt::MessageBoxButtons::BUTTONS_OK, "active", "native"),
+ css::uno::UNO_SET_THROW);
+
+ box->execute();
+
+ css::uno::Reference< css::lang::XComponent > xComponent(box, css::uno::UNO_QUERY_THROW);
+ xComponent->dispose();
+}
+
+cppu::ImplementationEntry const services[] = {
+ { &Provider::static_create, &Provider::static_getImplementationName,
+ &Provider::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, nullptr, 0 },
+ { &Dispatch::static_create, &Dispatch::static_getImplementationName,
+ &Dispatch::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, nullptr, 0 },
+ { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }
+};
+
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT void * component_getFactory(
+ char const * pImplName, void * pServiceManager, void * pRegistryKey)
+{
+ return cppu::component_getFactoryHelper(
+ pImplName, pServiceManager, pRegistryKey, services);
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT void
+component_getImplementationEnvironment(
+ char const ** ppEnvTypeName, uno_Environment **)
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool component_writeInfo(
+ void * pServiceManager, void * pRegistryKey)
+{
+ if (!component_writeInfoHelper(pServiceManager, pRegistryKey, services)) {
+ return false;
+ }
+ try {
+ css::uno::Reference< css::registry::XRegistryKey >(
+ (css::uno::Reference< css::registry::XRegistryKey >(
+ static_cast< css::registry::XRegistryKey * >(pRegistryKey))->
+ createKey(
+ "/" + Dispatch::static_getImplementationName() +
+ ("/UNO/SINGLETONS/com.sun.star.test.deployment."
+ "active_native_singleton"))),
+ css::uno::UNO_SET_THROW)->
+ setStringValue(Dispatch::static_getImplementationName());
+ } catch (const css::uno::Exception & e) {
+ SAL_INFO(
+ "desktop.test",
+ "active_native component_writeInfo exception: " << e.Message);
+ return false;
+ }
+ return true;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/test/deployment/active/active_python.py b/desktop/test/deployment/active/active_python.py
new file mode 100644
index 0000000000..7f6e5bbd44
--- /dev/null
+++ b/desktop/test/deployment/active/active_python.py
@@ -0,0 +1,112 @@
+#
+# 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/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+import uno
+import unohelper
+
+from com.sun.star.awt import Rectangle
+from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK
+from com.sun.star.awt.MessageBoxType import INFOBOX
+from com.sun.star.frame import XDispatch, XDispatchProvider
+from com.sun.star.lang import XServiceInfo
+from com.sun.star.registry import InvalidRegistryException
+
+class Provider(unohelper.Base, XServiceInfo, XDispatchProvider):
+ implementationName = "com.sun.star.comp.test.deployment.active_python"
+
+ serviceNames = ("com.sun.star.test.deployment.active_python",)
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def queryDispatch(self, URL, TargetFrame, SearchFlags):
+ return self.context.getValueByName( \
+ "/singletons/com.sun.star.test.deployment.active_python_singleton")
+
+ def queryDispatches(self, Requests):
+ tuple( \
+ self.queryDispatch(i.FeatureURL, i.FrameName, i.SearchFlags) \
+ for i in Requests)
+
+class Dispatch(unohelper.Base, XServiceInfo, XDispatch):
+ implementationName = \
+ "com.sun.star.comp.test.deployment.active_python_singleton"
+
+ serviceNames = ()
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def dispatch(self, URL, Arguments):
+ smgr = self.context.getServiceManager()
+ box = smgr.createInstanceWithContext( \
+ "com.sun.star.awt.Toolkit", self.context).createMessageBox( \
+ smgr.createInstanceWithContext( \
+ "com.sun.star.frame.Desktop", self.context). \
+ getCurrentFrame().getComponentWindow(), \
+ INFOBOX, BUTTONS_OK, "active", "python")
+ box.execute();
+ box.dispose();
+
+ def addStatusListener(self, Control, URL):
+ pass
+
+ def removeStatusListener(self, Control, URL):
+ pass
+
+def getComponentFactory(implementationName, smgr, regKey):
+ if implementationName == Provider.implementationName:
+ return unohelper.createSingleServiceFactory( \
+ Provider, Provider.implementationName, Provider.serviceNames)
+ elif implementationName == Dispatch.implementationName:
+ return unohelper.createSingleServiceFactory( \
+ Dispatch, Dispatch.implementationName, Dispatch.serviceNames)
+ else:
+ return None
+
+def writeRegistryInfo(smgr, regKey):
+ try:
+ for i in (Provider, Dispatch):
+ key = regKey.createKey("/" + i.implementationName + "/UNO")
+ for j in i.serviceNames:
+ key.createKey("/SERVICES/" + j);
+ regKey.createKey( \
+ "/" + Dispatch.implementationName + "/UNO/SINGLETONS/" \
+ "com.sun.star.test.deployment.active_python_singleton"). \
+ setStringValue(Dispatch.implementationName)
+ except InvalidRegistryException:
+ return False
+ return True
diff --git a/desktop/test/deployment/active/com/sun/star/comp/test/deployment/Dispatch.java b/desktop/test/deployment/active/com/sun/star/comp/test/deployment/Dispatch.java
new file mode 100644
index 0000000000..e224c94183
--- /dev/null
+++ b/desktop/test/deployment/active/com/sun/star/comp/test/deployment/Dispatch.java
@@ -0,0 +1,95 @@
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package com.sun.star.comp.test.deployment.active_java;
+
+import com.sun.star.awt.MessageBoxButtons;
+import com.sun.star.awt.MessageBoxType;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XMessageBox;
+import com.sun.star.awt.XMessageBoxFactory;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XStatusListener;
+import com.sun.star.lang.WrappedTargetRuntimeException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Dispatch extends WeakBase implements XServiceInfo, XDispatch
+{
+ public Dispatch(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return false; //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public void dispatch(URL URL, PropertyValue[] Arguments) {
+ try {
+ XMultiComponentFactory smgr = UnoRuntime.queryInterface(
+ XMultiComponentFactory.class, context.getServiceManager());
+ XMessageBox box = UnoRuntime.queryInterface(
+ XMessageBoxFactory.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.awt.Toolkit", context)).
+ createMessageBox(
+ UnoRuntime.queryInterface(
+ XWindowPeer.class,
+ (UnoRuntime.queryInterface(
+ XDesktop.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.frame.Desktop", context)).
+ getCurrentFrame().getComponentWindow())),
+ MessageBoxType.INFOBOX, MessageBoxButtons.BUTTONS_OK,
+ "active", "java");
+ box.execute();
+ UnoRuntime.queryInterface(XComponent.class, box).dispose();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ throw e;
+ } catch (com.sun.star.uno.Exception e) {
+ throw new WrappedTargetRuntimeException(e,
+ "wrapped: " + e.getMessage(), this, e);
+ }
+ }
+
+ public void addStatusListener(XStatusListener Control, URL URL) {}
+
+ public void removeStatusListener(XStatusListener Control, URL URL) {}
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.active_java_singleton";
+
+ static final String[] serviceNames = new String[0];
+}
diff --git a/desktop/test/deployment/active/com/sun/star/comp/test/deployment/Provider.java b/desktop/test/deployment/active/com/sun/star/comp/test/deployment/Provider.java
new file mode 100644
index 0000000000..3b9f8b88ee
--- /dev/null
+++ b/desktop/test/deployment/active/com/sun/star/comp/test/deployment/Provider.java
@@ -0,0 +1,74 @@
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package com.sun.star.comp.test.deployment.active_java;
+
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Provider extends WeakBase
+ implements XServiceInfo, XDispatchProvider
+{
+ public Provider(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return ServiceName.equals(getSupportedServiceNames()[0]); //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public XDispatch queryDispatch(
+ URL URL, String TargetFrameName, int SearchFlags)
+ {
+ return UnoRuntime.queryInterface(
+ XDispatch.class,
+ context.getValueByName(
+ "/singletons/" +
+ "com.sun.star.test.deployment.active_java_singleton"));
+ }
+
+ public XDispatch[] queryDispatches(DispatchDescriptor[] Requests) {
+ XDispatch[] s = new XDispatch[Requests.length];
+ for (int i = 0; i < s.length; ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+ }
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.active_java";
+
+ static final String[] serviceNames = new String[] {
+ "com.sun.star.test.deployment.active_java" };
+}
diff --git a/desktop/test/deployment/active/com/sun/star/comp/test/deployment/Services.java b/desktop/test/deployment/active/com/sun/star/comp/test/deployment/Services.java
new file mode 100644
index 0000000000..1af3f42b7d
--- /dev/null
+++ b/desktop/test/deployment/active/com/sun/star/comp/test/deployment/Services.java
@@ -0,0 +1,65 @@
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package com.sun.star.comp.test.deployment.active_java;
+
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.lib.uno.helper.Factory;
+import com.sun.star.registry.InvalidRegistryException;
+import com.sun.star.registry.XRegistryKey;
+
+public final class Services {
+ private Services() {}
+
+ public static XSingleComponentFactory __getComponentFactory(
+ String implementation)
+ {
+ if (implementation.equals(Dispatch.implementationName)) {
+ return Factory.createComponentFactory(
+ Dispatch.class, Dispatch.implementationName,
+ Dispatch.serviceNames);
+ } else if (implementation.equals(Provider.implementationName)) {
+ return Factory.createComponentFactory(
+ Provider.class, Provider.implementationName,
+ Provider.serviceNames);
+ } else {
+ return null;
+ }
+ }
+
+ public static boolean __writeRegistryServiceInfo(XRegistryKey key) {
+ if (!(Factory.writeRegistryServiceInfo(
+ Dispatch.implementationName, Dispatch.serviceNames, key) &&
+ Factory.writeRegistryServiceInfo(
+ Provider.implementationName, Provider.serviceNames, key)))
+ {
+ return false;
+ }
+ try {
+ key.
+ createKey(
+ "/" + Dispatch.implementationName +
+ "/UNO/SINGLETONS/" +
+ "com.sun.star.test.deployment.active_java_singleton").
+ setStringValue(Dispatch.implementationName);
+ } catch (InvalidRegistryException e) {
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/desktop/test/deployment/active/description.xml b/desktop/test/deployment/active/description.xml
new file mode 100644
index 0000000000..685d721322
--- /dev/null
+++ b/desktop/test/deployment/active/description.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:identifier
+ value="org.openoffice/framework/desktop/test/deployment/active"/>
+ <d:version value="1"/>
+ <d:dependencies>
+ <d:OpenOffice.org-minimal-version d:name="OpenOffice.org 3.4" value="3.4"/>
+ </d:dependencies>
+</d:description>
diff --git a/desktop/test/deployment/crashextension/Addons.xcu b/desktop/test/deployment/crashextension/Addons.xcu
new file mode 100644
index 0000000000..019a068e72
--- /dev/null
+++ b/desktop/test/deployment/crashextension/Addons.xcu
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+-->
+
+<o:items xmlns:o="http://openoffice.org/2001/registry">
+ <item o:path="/org.openoffice.Office.Addons">
+ <node o:name="AddonUI">
+ <node o:name="Images">
+ <node o:name="org.libreoffice.test.desktop.deployment.crashextension.imageCrash" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.libreoffice.test.desktop.deployment.crashextension:</value>
+ </prop>
+ <node o:name="UserDefinedImages">
+ <prop o:name="ImageSmallURL">
+ <value>%origin%/crash.png</value>
+ </prop>
+ <prop o:name="ImageBigURL">
+ <value>%origin%/crash.png</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+ <node o:name="OfficeToolbarMerging">
+ <node o:name="org.libreoffice.test.desktop.deployment.crashextension.toolbarmerge" o:op="replace">
+ <node o:name="T1" o:op="replace">
+ <prop o:name="MergeToolBar">
+ <value>standardbar</value>
+ </prop>
+ <prop o:name="MergePoint">
+ <value>.uno:HelpIndex</value>
+ </prop>
+ <prop o:name="MergeCommand">
+ <value>AddAfter</value>
+ </prop>
+ <prop o:name="MergeFallback">
+ <value>AddLast</value>
+ </prop>
+ <prop o:name="MergeContext">
+ <value/>
+ </prop>
+ <node o:name="ToolBarItems">
+ <node o:name="B1" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.libreoffice.test.desktop.deployment.crashextension:</value>
+ </prop>
+ <prop o:name="Title">
+ <value xml:lang="en-US">Crash LibreOffice</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+ </node>
+ </node>
+ </node>
+ </item>
+</o:items>
diff --git a/desktop/test/deployment/crashextension/META-INF/manifest.xml b/desktop/test/deployment/crashextension/META-INF/manifest.xml
new file mode 100644
index 0000000000..cbb8019473
--- /dev/null
+++ b/desktop/test/deployment/crashextension/META-INF/manifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+-->
+
+<m:manifest xmlns:m="http://openoffice.org/2001/manifest">
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="Addons.xcu"/>
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="ProtocolHandler.xcu"/>
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="ToolbarMerge.xcu"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-components;platform=@PLATFORM@"
+ m:full-path="platform.components"/>
+</m:manifest>
diff --git a/desktop/test/deployment/crashextension/ProtocolHandler.xcu b/desktop/test/deployment/crashextension/ProtocolHandler.xcu
new file mode 100644
index 0000000000..f4011743bf
--- /dev/null
+++ b/desktop/test/deployment/crashextension/ProtocolHandler.xcu
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+-->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="ProtocolHandler">
+ <node o:name="HandlerSet">
+ <node o:name="org.libreoffice.test.desktop.deployment.crashextension" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.libreoffice.test.desktop.deployment.crashextension:*</value>
+ </prop>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/crashextension/crash.png b/desktop/test/deployment/crashextension/crash.png
new file mode 100644
index 0000000000..693df038c3
--- /dev/null
+++ b/desktop/test/deployment/crashextension/crash.png
Binary files differ
diff --git a/desktop/test/deployment/crashextension/crashextension.component b/desktop/test/deployment/crashextension/crashextension.component
new file mode 100644
index 0000000000..2597e444a8
--- /dev/null
+++ b/desktop/test/deployment/crashextension/crashextension.component
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.libreoffice.test.desktop.deployment.crashextension.impl">
+ <service name="org.libreoffice.test.desktop.deployment.crashextension"/>
+ </implementation>
+</component>
diff --git a/desktop/test/deployment/crashextension/crashextension.cxx b/desktop/test/deployment/crashextension/crashextension.cxx
new file mode 100644
index 0000000000..2e64f3af02
--- /dev/null
+++ b/desktop/test/deployment/crashextension/crashextension.cxx
@@ -0,0 +1,152 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * 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/.
+ */
+
+#include <sal/config.h>
+
+#include <cassert>
+#include <cstddef>
+
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/frame/DispatchDescriptor.hpp>
+#include <com/sun/star/frame/XDispatch.hpp>
+#include <com/sun/star/frame/XDispatchProvider.hpp>
+#include <com/sun/star/frame/XStatusListener.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/uno/DeploymentException.hpp>
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/uno/Sequence.hxx>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/uno/XInterface.hpp>
+#include <com/sun/star/util/URL.hpp>
+#include <cppuhelper/implbase3.hxx>
+#include <cppuhelper/implementationentry.hxx>
+#include <cppuhelper/supportsservice.hxx>
+#include <rtl/ustring.hxx>
+#include <uno/lbnames.h>
+
+namespace
+{
+class Provider : public cppu::WeakImplHelper3<css::lang::XServiceInfo,
+ css::frame::XDispatchProvider, css::frame::XDispatch>
+{
+public:
+ Provider(const Provider&) = delete;
+ const Provider& operator=(const Provider&) = delete;
+
+ static css::uno::Reference<css::uno::XInterface>
+ SAL_CALL static_create(css::uno::Reference<css::uno::XComponentContext> const& xContext)
+ {
+ return static_cast<cppu::OWeakObject*>(new Provider(xContext));
+ }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence<rtl::OUString> SAL_CALL static_getSupportedServiceNames();
+
+private:
+ explicit Provider(css::uno::Reference<css::uno::XComponentContext> const& context)
+ : context_(context)
+ {
+ assert(context.is());
+ }
+
+ virtual ~Provider() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName() override
+ {
+ return static_getImplementationName();
+ }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const& ServiceName) override
+ {
+ return cppu::supportsService(this, ServiceName);
+ }
+
+ virtual css::uno::Sequence<rtl::OUString> SAL_CALL getSupportedServiceNames() override
+ {
+ return static_getSupportedServiceNames();
+ }
+
+ virtual css::uno::Reference<css::frame::XDispatch>
+ SAL_CALL queryDispatch(css::util::URL const&, rtl::OUString const&, sal_Int32) override;
+
+ virtual css::uno::Sequence<css::uno::Reference<css::frame::XDispatch>> SAL_CALL
+ queryDispatches(css::uno::Sequence<css::frame::DispatchDescriptor> const& Requests) override;
+
+ virtual void SAL_CALL dispatch(css::util::URL const&,
+ css::uno::Sequence<css::beans::PropertyValue> const&) override;
+
+ virtual void SAL_CALL addStatusListener(css::uno::Reference<css::frame::XStatusListener> const&,
+ css::util::URL const&) override
+ {
+ }
+
+ virtual void SAL_CALL removeStatusListener(
+ css::uno::Reference<css::frame::XStatusListener> const&, css::util::URL const&) override
+ {
+ }
+
+ css::uno::Reference<css::uno::XComponentContext> context_;
+};
+
+rtl::OUString Provider::static_getImplementationName()
+{
+ return rtl::OUString("org.libreoffice.test.desktop.deployment.crashextension.impl");
+}
+
+css::uno::Sequence<rtl::OUString> Provider::static_getSupportedServiceNames()
+{
+ rtl::OUString name("org.libreoffice.test.desktop.deployment.crashextension");
+ return css::uno::Sequence<rtl::OUString>(&name, 1);
+}
+
+css::uno::Reference<css::frame::XDispatch> Provider::queryDispatch(css::util::URL const&,
+ rtl::OUString const&, sal_Int32)
+{
+ return this;
+}
+
+css::uno::Sequence<css::uno::Reference<css::frame::XDispatch>>
+Provider::queryDispatches(css::uno::Sequence<css::frame::DispatchDescriptor> const& Requests)
+{
+ css::uno::Sequence<css::uno::Reference<css::frame::XDispatch>> s(Requests.getLength());
+ for (sal_Int32 i = 0; i < s.getLength(); ++i)
+ {
+ s[i]
+ = queryDispatch(Requests[i].FeatureURL, Requests[i].FrameName, Requests[i].SearchFlags);
+ }
+ return s;
+}
+
+void Provider::dispatch(css::util::URL const&, css::uno::Sequence<css::beans::PropertyValue> const&)
+{
+ // Crash LibreOffice
+ *((char*)NULL) = 0;
+}
+
+cppu::ImplementationEntry const services[]
+ = { { &Provider::static_create, &Provider::static_getImplementationName,
+ &Provider::static_getSupportedServiceNames, &cppu::createSingleComponentFactory, NULL,
+ 0 },
+ { NULL, NULL, NULL, NULL, NULL, 0 } };
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT void*
+component_getFactory(char const* pImplName, void* pServiceManager, void* pRegistryKey)
+{
+ return cppu::component_getFactoryHelper(pImplName, pServiceManager, pRegistryKey, services);
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT void
+component_getImplementationEnvironment(char const** ppEnvTypeName, uno_Environment**)
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/desktop/test/deployment/crashextension/description.xml b/desktop/test/deployment/crashextension/description.xml
new file mode 100644
index 0000000000..3084b17ae4
--- /dev/null
+++ b/desktop/test/deployment/crashextension/description.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+-->
+
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:identifier
+ value="org.libreoffice.test.desktop.deployment.crashextension"/>
+ <d:version value="1.0"/>
+ <d:display-name>
+ <d:name lang="en">Crash LibreOffice</d:name>
+ </d:display-name>
+ <d:dependencies>
+ <d:OpenOffice.org-minimal-version d:name="OpenOffice.org 3.4" value="3.4"/>
+ </d:dependencies>
+</d:description>
diff --git a/desktop/test/deployment/dependencies/broken-dependency.oxt b/desktop/test/deployment/dependencies/broken-dependency.oxt
new file mode 100644
index 0000000000..11bab0a950
--- /dev/null
+++ b/desktop/test/deployment/dependencies/broken-dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/double-dependencies.oxt b/desktop/test/deployment/dependencies/double-dependencies.oxt
new file mode 100644
index 0000000000..055c27ea53
--- /dev/null
+++ b/desktop/test/deployment/dependencies/double-dependencies.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/empty-dependencies.oxt b/desktop/test/deployment/dependencies/empty-dependencies.oxt
new file mode 100644
index 0000000000..ebb18dcbf5
--- /dev/null
+++ b/desktop/test/deployment/dependencies/empty-dependencies.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/funny-dependency.oxt b/desktop/test/deployment/dependencies/funny-dependency.oxt
new file mode 100644
index 0000000000..9b683e6d1e
--- /dev/null
+++ b/desktop/test/deployment/dependencies/funny-dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/license-dependency.oxt b/desktop/test/deployment/dependencies/license-dependency.oxt
new file mode 100644
index 0000000000..b01da4b5ca
--- /dev/null
+++ b/desktop/test/deployment/dependencies/license-dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/loversion35.oxt b/desktop/test/deployment/dependencies/loversion35.oxt
new file mode 100644
index 0000000000..ecd509cd9f
--- /dev/null
+++ b/desktop/test/deployment/dependencies/loversion35.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/loversion36.oxt b/desktop/test/deployment/dependencies/loversion36.oxt
new file mode 100644
index 0000000000..f38630e0c7
--- /dev/null
+++ b/desktop/test/deployment/dependencies/loversion36.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/many-dependencies.oxt b/desktop/test/deployment/dependencies/many-dependencies.oxt
new file mode 100644
index 0000000000..3675681437
--- /dev/null
+++ b/desktop/test/deployment/dependencies/many-dependencies.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/maxversion33.oxt b/desktop/test/deployment/dependencies/maxversion33.oxt
new file mode 100644
index 0000000000..fe0998c81f
--- /dev/null
+++ b/desktop/test/deployment/dependencies/maxversion33.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/maxversion34.oxt b/desktop/test/deployment/dependencies/maxversion34.oxt
new file mode 100644
index 0000000000..0a284b388d
--- /dev/null
+++ b/desktop/test/deployment/dependencies/maxversion34.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/maxversion35.oxt b/desktop/test/deployment/dependencies/maxversion35.oxt
new file mode 100644
index 0000000000..e95b97cd68
--- /dev/null
+++ b/desktop/test/deployment/dependencies/maxversion35.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/maxversion36.oxt b/desktop/test/deployment/dependencies/maxversion36.oxt
new file mode 100644
index 0000000000..786ed4ce17
--- /dev/null
+++ b/desktop/test/deployment/dependencies/maxversion36.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/minattr22.oxt b/desktop/test/deployment/dependencies/minattr22.oxt
new file mode 100644
index 0000000000..a6c8e3758c
--- /dev/null
+++ b/desktop/test/deployment/dependencies/minattr22.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/minattr23.oxt b/desktop/test/deployment/dependencies/minattr23.oxt
new file mode 100644
index 0000000000..83d17938c4
--- /dev/null
+++ b/desktop/test/deployment/dependencies/minattr23.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/minattr24.oxt b/desktop/test/deployment/dependencies/minattr24.oxt
new file mode 100644
index 0000000000..00f053f487
--- /dev/null
+++ b/desktop/test/deployment/dependencies/minattr24.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/no-dependencies.oxt b/desktop/test/deployment/dependencies/no-dependencies.oxt
new file mode 100644
index 0000000000..6487eb66ae
--- /dev/null
+++ b/desktop/test/deployment/dependencies/no-dependencies.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/no-description.oxt b/desktop/test/deployment/dependencies/no-description.oxt
new file mode 100644
index 0000000000..1e6579cd7d
--- /dev/null
+++ b/desktop/test/deployment/dependencies/no-description.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/readme.txt b/desktop/test/deployment/dependencies/readme.txt
new file mode 100644
index 0000000000..8ba90ce4aa
--- /dev/null
+++ b/desktop/test/deployment/dependencies/readme.txt
@@ -0,0 +1,73 @@
+#
+# 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/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+no-description.oxt, no-dependencies.oxt, empty-dependencies.oxt effectively have
+no dependencies and should thus install successfully.
+
+broken-dependencies.oxt contains a malformed description.xml and should thus
+display an error and not install.
+
+double-dependencies.oxt contains a description.xml with two dependencies
+elements. This is not allowed by the spec but behaviour is unspecified. In the
+current implementation, it combines the two elements, and thus finds two
+unsatisfied dependencies, displays the Unsatisfied Dependencies dialog and does
+not install.
+
+version21.oxt contains a dependency on OOo 2.1 (and should thus only install in
+OOo 2.1 or later); version21ns.oxt is the same, but with a different way of
+using XML namespaces; version21other.oxt additionally contains an unsatisfied
+dependency (and should thus not install in any OOo version). version22.oxt
+contains a dependency on OOo 2.2 (and should thus only install in OOo 2.2 or
+later). version23.oxt contains a dependency on OOo 2.3 (and should thus only
+install in OOo 2.3 or later). version10000.oxt contains a dependency on the
+hypothetical OOo version 10000 (and should thus not install in any OOo version).
+versionempty.oxt contains an empty value attribute and versionnone.oxt lacks the
+value attribute; neither is allowed by the spec, but the current implementation
+treats both as pre OOo 2.1 versions (and the extensions should thus install in
+OOo 2.1 or later).
+
+maxversion30.oxt contains a maximal version dependency on OOo 3.0 (and should
+thus only install in OOo 3.0 or earlier, back to OOo 2.3, thanks to the
+additionally specified OpenOffice.org-minimal-version attribute).
+maxversion10000.oxt contains a maximal version dependency on the hypothetical
+OOo version 10000 (and should thus install in any OOo version 3.1 or later;
+OpenOffice.org-maximal-version was introduced in OOo 3.1, and no OpenOffice.org-
+minimal-version attribute is specified). bad-minmaxversion.oxt contains a
+minimal version dependency on OOo 3.2 and a maximal version dependency on
+OOo 3.1 (and should thus not install in any OOo version).
+
+minattr22.oxt contains a (hypothetical, most probably never satisfied)
+UNSATISFIED dependency with an OpenOffice.org-minimal-version attribute of
+"2.2" (and should thus install in OOo 2.3 or later); minattr23.oxt is similar,
+but with an OpenOffice.org-minimal-version attribute of "2.3" (and should thus
+also install in OOo 2.3 or later); minattr24.oxt is similar, but with an
+OpenOffice.org-minimal-version attribute of "2.4" (and should thus only install
+in OOo 2.4 or later).
+
+All of the following testcases should result in the Unsatisfied Dependencies
+dialog being displayed and the extension not being installed:
+
+unknown-dependency.oxt contains a dependency without a name attribute, and
+should thus display "Unknown" (localized).
+
+funny-dependency.oxt, many-dependencies.oxt contain somewhat extreme input.
+
+license-dependency.oxt contains both a license to be accepted by the user and
+dependencies. What is important here is that the Unsatisfied Dependencies
+dialog is displayed, but not the license (as installation aborts as soon as
+unsatisfied dependencies are found).
diff --git a/desktop/test/deployment/dependencies/unknown-dependency.oxt b/desktop/test/deployment/dependencies/unknown-dependency.oxt
new file mode 100644
index 0000000000..7c2a22c6d5
--- /dev/null
+++ b/desktop/test/deployment/dependencies/unknown-dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version10000.oxt b/desktop/test/deployment/dependencies/version10000.oxt
new file mode 100644
index 0000000000..c15b7a117c
--- /dev/null
+++ b/desktop/test/deployment/dependencies/version10000.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version21.oxt b/desktop/test/deployment/dependencies/version21.oxt
new file mode 100644
index 0000000000..922b279555
--- /dev/null
+++ b/desktop/test/deployment/dependencies/version21.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version21ns.oxt b/desktop/test/deployment/dependencies/version21ns.oxt
new file mode 100644
index 0000000000..5efb2ed902
--- /dev/null
+++ b/desktop/test/deployment/dependencies/version21ns.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version21other.oxt b/desktop/test/deployment/dependencies/version21other.oxt
new file mode 100644
index 0000000000..d88a8155af
--- /dev/null
+++ b/desktop/test/deployment/dependencies/version21other.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version22.oxt b/desktop/test/deployment/dependencies/version22.oxt
new file mode 100644
index 0000000000..4c8a207b68
--- /dev/null
+++ b/desktop/test/deployment/dependencies/version22.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version23.oxt b/desktop/test/deployment/dependencies/version23.oxt
new file mode 100644
index 0000000000..6c08d2949c
--- /dev/null
+++ b/desktop/test/deployment/dependencies/version23.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version34.oxt b/desktop/test/deployment/dependencies/version34.oxt
new file mode 100644
index 0000000000..ee2a82d936
--- /dev/null
+++ b/desktop/test/deployment/dependencies/version34.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/version35.oxt b/desktop/test/deployment/dependencies/version35.oxt
new file mode 100644
index 0000000000..6e99cf1b26
--- /dev/null
+++ b/desktop/test/deployment/dependencies/version35.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/versionempty.oxt b/desktop/test/deployment/dependencies/versionempty.oxt
new file mode 100644
index 0000000000..a06bb01294
--- /dev/null
+++ b/desktop/test/deployment/dependencies/versionempty.oxt
Binary files differ
diff --git a/desktop/test/deployment/dependencies/versionnone.oxt b/desktop/test/deployment/dependencies/versionnone.oxt
new file mode 100644
index 0000000000..ace2a11651
--- /dev/null
+++ b/desktop/test/deployment/dependencies/versionnone.oxt
Binary files differ
diff --git a/desktop/test/deployment/description/desc1.oxt b/desktop/test/deployment/description/desc1.oxt
new file mode 100644
index 0000000000..e447fd6eae
--- /dev/null
+++ b/desktop/test/deployment/description/desc1.oxt
Binary files differ
diff --git a/desktop/test/deployment/description/desc2.oxt b/desktop/test/deployment/description/desc2.oxt
new file mode 100644
index 0000000000..8df2f33fa6
--- /dev/null
+++ b/desktop/test/deployment/description/desc2.oxt
Binary files differ
diff --git a/desktop/test/deployment/description/desc3.oxt b/desktop/test/deployment/description/desc3.oxt
new file mode 100644
index 0000000000..fbd1136b03
--- /dev/null
+++ b/desktop/test/deployment/description/desc3.oxt
Binary files differ
diff --git a/desktop/test/deployment/description/desc4.oxt b/desktop/test/deployment/description/desc4.oxt
new file mode 100644
index 0000000000..0c97f5fd44
--- /dev/null
+++ b/desktop/test/deployment/description/desc4.oxt
Binary files differ
diff --git a/desktop/test/deployment/description/desc5.oxt b/desktop/test/deployment/description/desc5.oxt
new file mode 100644
index 0000000000..8110073499
--- /dev/null
+++ b/desktop/test/deployment/description/desc5.oxt
Binary files differ
diff --git a/desktop/test/deployment/description/readme.txt b/desktop/test/deployment/description/readme.txt
new file mode 100644
index 0000000000..bb133ba516
--- /dev/null
+++ b/desktop/test/deployment/description/readme.txt
@@ -0,0 +1,23 @@
+The folder contains extensions which use in the description.xml the following:
+-The <extension-description> element The element contains localized child
+elements.
+
+The following table shows what localized item is used, when the Office the locale
+en-US uses. The displayed extension description contains the locale.
+
+
+Localization:
+
+Installed office: en-US
+ | locale
+=========================
+desc1.oxt | en-US
+-------------------------
+desc2.oxt | en-US-region1
+--------------------------
+desc3.oxt | en
+--------------------------
+desc4.oxt | en-GB
+--------------------------
+desc5.oxt | de
+
diff --git a/desktop/test/deployment/display_name/name1.oxt b/desktop/test/deployment/display_name/name1.oxt
new file mode 100644
index 0000000000..5a53690d69
--- /dev/null
+++ b/desktop/test/deployment/display_name/name1.oxt
Binary files differ
diff --git a/desktop/test/deployment/display_name/name2.oxt b/desktop/test/deployment/display_name/name2.oxt
new file mode 100644
index 0000000000..f6cbcae3bc
--- /dev/null
+++ b/desktop/test/deployment/display_name/name2.oxt
Binary files differ
diff --git a/desktop/test/deployment/display_name/name3.oxt b/desktop/test/deployment/display_name/name3.oxt
new file mode 100644
index 0000000000..8df750ce62
--- /dev/null
+++ b/desktop/test/deployment/display_name/name3.oxt
Binary files differ
diff --git a/desktop/test/deployment/display_name/name4.oxt b/desktop/test/deployment/display_name/name4.oxt
new file mode 100644
index 0000000000..6ce4822e37
--- /dev/null
+++ b/desktop/test/deployment/display_name/name4.oxt
Binary files differ
diff --git a/desktop/test/deployment/display_name/name5.oxt b/desktop/test/deployment/display_name/name5.oxt
new file mode 100644
index 0000000000..56973be781
--- /dev/null
+++ b/desktop/test/deployment/display_name/name5.oxt
Binary files differ
diff --git a/desktop/test/deployment/display_name/readme.txt b/desktop/test/deployment/display_name/readme.txt
new file mode 100644
index 0000000000..23173bde63
--- /dev/null
+++ b/desktop/test/deployment/display_name/readme.txt
@@ -0,0 +1,26 @@
+The folder contains extensions which use in the description.xml the following:
+-The <display-name> element
+The element contains localized child elements.
+
+To test the display name in the update dialog use the extensions in
+desktop/test/deployment/update/simple
+
+
+The following table shows what localized item is used, when the Office the locale
+en-US uses.
+
+
+Localization:
+
+Installed office: en-US
+ | publisher | release notes
+=============================================
+name1.oxt | en-US | en-US
+---------------------------------------------
+name2.oxt | en-US-region1 | en-US-region1
+---------------------------------------------
+name3.oxt | en | en
+---------------------------------------------
+name4.oxt | en-GB | en-GB
+---------------------------------------------
+name5.oxt | de | de
diff --git a/desktop/test/deployment/executable_content/build/hello.c b/desktop/test/deployment/executable_content/build/hello.c
new file mode 100644
index 0000000000..d527e71524
--- /dev/null
+++ b/desktop/test/deployment/executable_content/build/hello.c
@@ -0,0 +1,34 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <stdio.h>
+
+int main(int argc, char** argv, char** envp)
+{
+ //prevent warning about unused parameters
+ //we need to provide parameter names in C
+ (void)argc;
+ (void)argv;
+ (void)envp;
+
+ fprintf(stdout, "Hello world!\n");
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/test/deployment/executable_content/build/makefile.mk b/desktop/test/deployment/executable_content/build/makefile.mk
new file mode 100644
index 0000000000..513d640cfd
--- /dev/null
+++ b/desktop/test/deployment/executable_content/build/makefile.mk
@@ -0,0 +1,42 @@
+#
+# 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/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+PRJ = ..$/..$/..$/..
+
+PRJNAME = desktop
+TARGET = hello
+LIBTARGET=NO
+NO_DEFAULT_STL=TRUE
+LIBSALCPPRT=
+
+.INCLUDE : settings.mk
+
+
+APP1NOSAL = TRUE
+APP1OBJS = \
+ $(OBJ)$/hello.obj
+
+
+APP1TARGET = $(TARGET)
+
+DEPOBJFILES = \
+ $(OBJ)$/hello.obj
+
+
+.INCLUDE : target.mk
+
diff --git a/desktop/test/deployment/executable_content/build/readme.txt b/desktop/test/deployment/executable_content/build/readme.txt
new file mode 100644
index 0000000000..4f956e573e
--- /dev/null
+++ b/desktop/test/deployment/executable_content/build/readme.txt
@@ -0,0 +1,2 @@
+This folder contains the sources to build the hello executable which is contained
+in the hello.oxt.
diff --git a/desktop/test/deployment/executable_content/hello.oxt b/desktop/test/deployment/executable_content/hello.oxt
new file mode 100644
index 0000000000..97d6d14a31
--- /dev/null
+++ b/desktop/test/deployment/executable_content/hello.oxt
Binary files differ
diff --git a/desktop/test/deployment/executable_content/readme.txt b/desktop/test/deployment/executable_content/readme.txt
new file mode 100644
index 0000000000..2c336de723
--- /dev/null
+++ b/desktop/test/deployment/executable_content/readme.txt
@@ -0,0 +1,12 @@
+When the executable is installed try to execute the executable "hello". The executable
+file attribute (not on Windows) should be set.
+
+CD into the extension directory in /user|share)/uno_packages/cache/uno_packages/xyz_
+Then there are the directories for different platforms:
+
+windows,
+solaris,
+linux
+
+Each directory contains a hello executable. On linux one should execute it in a
+shell with a build environment, so that the C++ runtime is found.
diff --git a/desktop/test/deployment/identifier/explicit/identifier.oxt b/desktop/test/deployment/identifier/explicit/identifier.oxt
new file mode 100644
index 0000000000..3851e291c9
--- /dev/null
+++ b/desktop/test/deployment/identifier/explicit/identifier.oxt
Binary files differ
diff --git a/desktop/test/deployment/identifier/legacy/identifier.oxt b/desktop/test/deployment/identifier/legacy/identifier.oxt
new file mode 100644
index 0000000000..df8bb84492
--- /dev/null
+++ b/desktop/test/deployment/identifier/legacy/identifier.oxt
Binary files differ
diff --git a/desktop/test/deployment/identifier/readme.txt b/desktop/test/deployment/identifier/readme.txt
new file mode 100644
index 0000000000..c268ca4afd
--- /dev/null
+++ b/desktop/test/deployment/identifier/readme.txt
@@ -0,0 +1,24 @@
+#
+# 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/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+legacy/identifier.oxt and explicit/identifier.oxt are two different extensions
+that happen to have the same file name. legacy/identifier.oxt does not have an
+explicit extension identifier, so it gets the implicit one "org.openoffice.
+legacy.identifier.oxt". explicit/identifier.oxt has the
+explicit extension identifier "org.openoffice/framework/desktop/test/deployment/
+identifier/explicit/identifier.oxt".
diff --git a/desktop/test/deployment/locationtest/LocationTest.idl b/desktop/test/deployment/locationtest/LocationTest.idl
new file mode 100644
index 0000000000..75421e2455
--- /dev/null
+++ b/desktop/test/deployment/locationtest/LocationTest.idl
@@ -0,0 +1,27 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+
+module com { module sun { module star { module comp { module smoketest {
+ // example service, XServiceInfo is implemented here for demonstration
+ // issues. XServiceInfo must be implemented by all components.
+ service TestExtension: ::com::sun::star::lang::XServiceInfo;
+};};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/test/deployment/locationtest/LocationTest.java b/desktop/test/deployment/locationtest/LocationTest.java
new file mode 100644
index 0000000000..ca70b5a1e9
--- /dev/null
+++ b/desktop/test/deployment/locationtest/LocationTest.java
@@ -0,0 +1,156 @@
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package com.sun.star.comp.smoketest;
+
+import com.sun.star.lib.uno.helper.Factory;
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.registry.XRegistryKey;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.lang.XTypeProvider;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.uno.Type;
+
+/** This class capsulates the class, that implements the minimal component, a
+ * factory for creating the service (<CODE>__getComponentFactory</CODE>) and a
+ * method, that writes the information into the given registry key
+ * (<CODE>__writeRegistryServiceInfo</CODE>).
+ */
+public class LocationTest {
+ /** This class implements the component. At least the interfaces XServiceInfo,
+ * XTypeProvider, and XInitialization should be provided by the service.
+ */
+ public static class _LocationTest extends WeakBase
+ implements XServiceInfo {
+ /** The service name, that must be used to get an instance of this service.
+ */
+ private static final String __serviceName =
+ "com.sun.star.comp.smoketest.LocationTest";
+
+ /** The initial component contextr, that gives access to
+ * the service manager, supported singletons, ...
+ * It's often later used
+ */
+ private XComponentContext m_cmpCtx;
+
+ /** The service manager, that gives access to all registered services.
+ * It's often later used
+ */
+ private XMultiComponentFactory m_xMCF;
+
+ /** The constructor of the inner class has a XMultiServiceFactory parameter.
+ * @param xmultiservicefactoryInitialization A special service factory
+ * could be introduced while initializing.
+ */
+ public _LocationTest(XComponentContext xCompContext) {
+ try {
+ m_cmpCtx = xCompContext;
+ m_xMCF = m_cmpCtx.getServiceManager();
+ }
+ catch( Exception e ) {
+ e.printStackTrace();
+ }
+ }
+
+ /** This method returns an array of all supported service names.
+ * @return Array of supported service names.
+ */
+ public String[] getSupportedServiceNames() {
+ return getServiceNames();
+ }
+
+ /** This method is a simple helper function to used in the
+ * static component initialisation functions as well as in
+ * getSupportedServiceNames.
+ */
+ public static String[] getServiceNames() {
+ String[] sSupportedServiceNames = { __serviceName };
+ return sSupportedServiceNames;
+ }
+
+ /** This method returns true, if the given service will be
+ * supported by the component.
+ * @param sServiceName Service name.
+ * @return True, if the given service name will be supported.
+ */
+ public boolean supportsService( String sServiceName ) {
+ return sServiceName.equals( __serviceName );
+ }
+
+ /** Return the class name of the component.
+ * @return Class name of the component.
+ */
+ public String getImplementationName() {
+ return _LocationTest.class.getName();
+ }
+ }
+
+
+ /**
+ * Gives a factory for creating the service.
+ * This method is called by the <code>JavaLoader</code>
+ * <p>
+ * @return returns a <code>XSingleComponentFactory</code> for creating
+ * the component
+ * @param sImplName the name of the implementation for which a
+ * service is desired
+ * @see com.sun.star.comp.loader.JavaLoader
+ */
+ public static XSingleComponentFactory __getComponentFactory(String sImplName)
+ {
+ XSingleComponentFactory xFactory = null;
+
+ if ( sImplName.equals( _LocationTest.class.getName() ) )
+ xFactory = Factory.createComponentFactory(_LocationTest.class,
+ _LocationTest.getServiceNames());
+
+ return xFactory;
+ }
+
+ /**
+ * Writes the service information into the given registry key.
+ * This method is called by the <code>JavaLoader</code>
+ * <p>
+ * @return returns true if the operation succeeded
+ * @param regKey the registryKey
+ * @see com.sun.star.comp.loader.JavaLoader
+ */
+ public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
+ return Factory.writeRegistryServiceInfo(_LocationTest.class.getName(),
+ _LocationTest.getServiceNames(),
+ regKey);
+ }
+
+ /** This method is a member of the interface for initializing an object
+ * directly after its creation.
+ * @param object This array of arbitrary objects will be passed to the
+ * component after its creation.
+ * @throws Exception Every exception will not be handled, but will be
+ * passed to the caller.
+ */
+ public void initialize( Object[] object )
+ throws com.sun.star.uno.Exception {
+ /* The component describes what arguments are expected and in which
+ * order! At this point you can read the objects and initialize
+ * your component using these objects.
+ */
+ }
+}
diff --git a/desktop/test/deployment/locationtest/LocationTest.odt b/desktop/test/deployment/locationtest/LocationTest.odt
new file mode 100644
index 0000000000..8e1aa70078
--- /dev/null
+++ b/desktop/test/deployment/locationtest/LocationTest.odt
Binary files differ
diff --git a/desktop/test/deployment/locationtest/MANIFEST.MF b/desktop/test/deployment/locationtest/MANIFEST.MF
new file mode 100644
index 0000000000..a2fa8c34b7
--- /dev/null
+++ b/desktop/test/deployment/locationtest/MANIFEST.MF
@@ -0,0 +1,2 @@
+RegistrationClassName: com.sun.star.comp.smoketest.LocationTest
+
diff --git a/desktop/test/deployment/locationtest/description.xml b/desktop/test/deployment/locationtest/description.xml
new file mode 100644
index 0000000000..0d2b712949
--- /dev/null
+++ b/desktop/test/deployment/locationtest/description.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/description/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:d="http://openoffice.org/extensions/description/2006" >
+ <identifier value="org.openoffice.extensions.testarea.desktop.location"/>
+ <version value="1.0" />
+ <dependencies >
+ <OpenOffice.org-minimal-version value="2.2" d:name="OpenOffice.org 2.2"/>
+ </dependencies>
+ <update-information>
+ <src xlink:href="http://update.services.openoffice.org/ProductUpdateService/check.Update?product=extension&amp;extensionid=org.openoffice.extensions.testarea.desktop.updateinfo&amp;refresh=true"/>
+ </update-information>
+</description>
diff --git a/desktop/test/deployment/locationtest/makefile.mk b/desktop/test/deployment/locationtest/makefile.mk
new file mode 100644
index 0000000000..de586915e2
--- /dev/null
+++ b/desktop/test/deployment/locationtest/makefile.mk
@@ -0,0 +1,76 @@
+#
+# 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/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+PRJ = ..$/..$/..
+PRJNAME = location_test
+PACKAGE = com$/sun$/star$/comp$/smoketest
+TARGET = com_sun_star_comp_smoketest
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+JARFILES = ridl.jar jurt.jar unoil.jar juh.jar
+
+JARTARGET = LocationTest.jar
+JARCOMPRESS = TRUE
+CUSTOMMANIFESTFILE = MANIFEST.MF
+
+ZIP1TARGET=locationtest
+ZIP1LIST=*
+ZIPFLAGS=-r
+ZIP1DIR=$(MISC)$/$(TARGET)
+ZIP1EXT=.oxt
+
+# --- Files --------------------------------------------------------
+
+COPY_OXT_MANIFEST:= $(MISC)$/$(TARGET)$/META-INF$/manifest.xml
+JAVAFILES = LocationTest.java
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+$(JARTARGETN) : $(MISC)$/$(TARGET).javamaker.done
+
+$(JAVACLASSFILES) : $(MISC)$/$(TARGET).javamaker.done
+
+$(MISC)$/$(TARGET).javamaker.done: $(BIN)$/LocationTest.rdb
+ $(JAVAMAKER) -O$(CLASSDIR) -BUCR -nD -X$(SOLARBINDIR)/types.rdb $<
+ $(TOUCH) $@
+
+$(BIN)$/LocationTest.rdb: LocationTest.idl
+ $(IDLC) -O$(MISC) -I$(SOLARIDLDIR) -cid -we $<
+ +-$(RM) $@
+ $(REGMERGE) $@ /UCR $(MISC)$/LocationTest.urd
+
+$(MISC)$/$(ZIP1TARGET).createdir :
+ +$(MKDIRHIER) $(MISC)$/$(TARGET)$/META-INF >& $(NULLDEV) && $(TOUCH) $@
+
+$(MISC)$/$(TARGET)_resort : manifest.xml $(JARTARGETN) $(MISC)$/$(ZIP1TARGET).createdir $(BIN)$/LocationTest.rdb description.xml
+ $(COPY) manifest.xml $(MISC)$/$(TARGET)$/META-INF$/manifest.xml
+ $(COPY) $(JARTARGETN) $(MISC)$/$(TARGET)$/$(JARTARGET)
+ $(COPY) $(BIN)$/LocationTest.rdb $(MISC)$/$(TARGET)$/LocationTest.rdb
+ $(COPY) description.xml $(MISC)$/$(TARGET)$/description.xml
+ $(TOUCH) $@
+
+.IF "$(ZIP1TARGETN)"!=""
+$(ZIP1TARGETN) : $(MISC)$/$(TARGET)_resort $(MISC)$/$(ZIP1TARGET).createdir
+
+.ENDIF # "$(ZIP1TARGETN)"!=""
+
diff --git a/desktop/test/deployment/locationtest/manifest.xml b/desktop/test/deployment/locationtest/manifest.xml
new file mode 100644
index 0000000000..3dd6460faf
--- /dev/null
+++ b/desktop/test/deployment/locationtest/manifest.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest">
+ <manifest:file-entry manifest:full-path="LocationTest.jar" manifest:media-type="application/vnd.sun.star.uno-component;type=Java"/>
+ <manifest:file-entry manifest:full-path="LocationTest.rdb" manifest:media-type="application/vnd.sun.star.uno-typelibrary;type=RDB"/>
+</manifest:manifest>
diff --git a/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/MANIFEST.MF b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/MANIFEST.MF
new file mode 100644
index 0000000000..fba55a6e0d
--- /dev/null
+++ b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/MANIFEST.MF
@@ -0,0 +1,2 @@
+RegistrationClassName: com.sun.star.comp.extensionoptions.OptionsEventHandler
+
diff --git a/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/OptionsEventHandler.java b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/OptionsEventHandler.java
new file mode 100644
index 0000000000..b360f470be
--- /dev/null
+++ b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/OptionsEventHandler.java
@@ -0,0 +1,417 @@
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package com.sun.star.comp.extensionoptions;
+
+import com.sun.star.configuration.theDefaultProvider;
+import com.sun.star.lib.uno.helper.Factory;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.WrappedTargetException;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.uno.Exception;
+import com.sun.star.registry.XRegistryKey;
+import com.sun.star.awt.XContainerWindowEventHandler;
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XControlContainer;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.beans.NamedValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.util.XChangesBatch;
+
+/** A handler which supports multiple options pages which all
+ * have the same controls.
+ */
+public class OptionsEventHandler {
+
+ public static class _OptionsEventHandler extends WeakBase
+ implements XServiceInfo, XContainerWindowEventHandler {
+
+ private static final String __serviceName =
+ "com.sun.star.comp.extensionoptions.OptionsEventHandler";
+
+ private final XComponentContext m_cmpCtx;
+
+ private XNameAccess m_xAccessLeaves;
+
+ /**Names of supported options pages.
+ */
+ private final String[] m_arWindowNames = {
+ "Writer1", "Writer2", "Writer3", "Calc1", "Calc2", "Calc3",
+ "Draw1", "Draw2", "Draw3", "Node1_1", "Node1_2", "Node1_3",
+ "Node2_1", "Node2_2", "Node2_3", "Node3_1", "Node3_2", "Node3_3"};
+
+ /**Names of the controls which are supported by this handler. All these
+ *controls must have a "Text" property.
+ */
+ private final String[] m_arStringControls = {
+ "String0", "String1", "String2", "String3", "String4"};
+
+ public _OptionsEventHandler(XComponentContext xCompContext) {
+ m_cmpCtx = xCompContext;
+
+ //Create the com.sun.star.configuration.ConfigurationUpdateAccess
+ //for the registry node which contains the data for our option
+ //pages.
+ XMultiServiceFactory xConfig = theDefaultProvider.get(m_cmpCtx);
+
+ //One argument for creating the ConfigurationUpdateAccess is the "nodepath".
+ //Our nodepath point to the node of which the direct subnodes represent the
+ //different options pages.
+ Object[] args = new Object[1];
+ args[0] = new NamedValue(
+ "nodepath",
+ "/org.openoffice.desktop.deployment.options.ExtensionData/Leaves");
+
+ //We get the com.sun.star.container.XNameAccess from the instance of
+ //ConfigurationUpdateAccess and save it for later use.
+ try {
+ m_xAccessLeaves = UnoRuntime.queryInterface(
+ XNameAccess.class, xConfig.createInstanceWithArguments(
+ "com.sun.star.configuration.ConfigurationUpdateAccess", args));
+
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace();
+ return;
+ }
+ }
+
+ /** This method returns an array of all supported service names.
+ * @return Array of supported service names.
+ */
+ public String[] getSupportedServiceNames() {
+ return getServiceNames();
+ }
+
+ /** This method is a simple helper function to used in the
+ * static component initialisation functions as well as in
+ * getSupportedServiceNames.
+ */
+ private static String[] getServiceNames() {
+ String[] sSupportedServiceNames = { __serviceName };
+ return sSupportedServiceNames;
+ }
+
+ /** This method returns true, if the given service will be
+ * supported by the component.
+ * @param sServiceName Service name.
+ * @return True, if the given service name will be supported.
+ */
+ public boolean supportsService( String sServiceName ) {
+ return sServiceName.equals( __serviceName );
+ }
+
+ /** Return the class name of the component.
+ * @return Class name of the component.
+ */
+ public String getImplementationName() {
+ return _OptionsEventHandler.class.getName();
+ }
+
+ //XContainerWindowEventHandler
+ public boolean callHandlerMethod(com.sun.star.awt.XWindow aWindow,
+ Object aEventObject, String sMethod)
+ throws WrappedTargetException {
+ if (sMethod.equals("external_event") ){
+ try {
+ return handleExternalEvent(aWindow, aEventObject);
+ } catch (com.sun.star.uno.Exception e) {
+ throw new WrappedTargetException(e, sMethod, this, e);
+ }
+ }
+
+ return true;
+ }
+
+ //XContainerWindowEventHandler
+ public String[] getSupportedMethodNames() {
+ return new String[] {"external_event"};
+ }
+
+ private boolean handleExternalEvent(com.sun.star.awt.XWindow aWindow, Object aEventObject)
+ throws com.sun.star.uno.Exception {
+ try {
+ String sMethod = AnyConverter.toString(aEventObject);
+ if (sMethod.equals("ok")) {
+ saveData(aWindow);
+ } else if (sMethod.equals("back") || sMethod.equals("initialize")) {
+ loadData(aWindow);
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ throw new com.sun.star.lang.IllegalArgumentException(ex,
+ "Method external_event requires a string in the event object argument.",
+ this, (short) -1);
+ }
+
+ return true;
+ }
+
+ private void saveData(com.sun.star.awt.XWindow aWindow)
+ throws com.sun.star.lang.IllegalArgumentException,
+ com.sun.star.uno.Exception {
+
+ //Determine the name of the options page. This serves two purposes. First, if this
+ //options page is supported by this handler and second we use the name two locate
+ //the corresponding data in the registry.
+ String sWindowName = getWindowName(aWindow);
+ if (sWindowName == null)
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "This window is not supported by this handler", this, (short) -1);
+
+ //To access the separate controls of the window we need to obtain the
+ //XControlContainer from the window implementation
+ XControlContainer xContainer = UnoRuntime.queryInterface(
+ XControlContainer.class, aWindow);
+ if (xContainer == null)
+ throw new com.sun.star.uno.Exception(
+ "Could not get XControlContainer from window.", this);
+
+ //This is an implementation which will be used for several options pages
+ //which all have the same controls. m_arStringControls is an array which
+ //contains the names.
+ for (int i = 0; i < m_arStringControls.length; i++) {
+
+ //To obtain the data from the controls we need to get their model.
+ //First get the respective control from the XControlContainer.
+ XControl xControl = xContainer.getControl(m_arStringControls[i]);
+
+ //This generic handler and the corresponding registry schema support
+ //up to five text controls. However, if an options page does not use all
+ //five controls then we will not complain here.
+ if (xControl == null)
+ continue;
+
+ //From the control we get the model, which in turn supports the
+ //XPropertySet interface, which we finally use to get the data from
+ //the control.
+ XPropertySet xProp = UnoRuntime.queryInterface(
+ XPropertySet.class, xControl.getModel());
+
+ if (xProp == null)
+ throw new com.sun.star.uno.Exception(
+ "Could not get XPropertySet from control.", this);
+ //Get the "Text" property.
+ Object aText = xProp.getPropertyValue("Text");
+ String sValue = null;
+
+ //The value is still contained in a com.sun.star.uno.Any - so convert it.
+ try {
+ sValue = AnyConverter.toString(aText);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ throw new com.sun.star.lang.IllegalArgumentException(ex,
+ "Wrong property type.", this, (short) -1);
+ }
+
+ //Now we have the actual string value of the control. What we need now is
+ //the XPropertySet of the respective property in the registry, so that we
+ //can store the value.
+ //To access the registry we have previously created a service instance
+ //of com.sun.star.configuration.ConfigurationUpdateAccess which supports
+ //com.sun.star.container.XNameAccess. The XNameAccess is used to get the
+ //particular registry node which represents this options page.
+ //Fortunately the name of the window is the same as the registry node.
+ XPropertySet xLeaf = UnoRuntime.queryInterface(
+ XPropertySet.class, m_xAccessLeaves.getByName(sWindowName));
+ if (xLeaf == null)
+ throw new com.sun.star.uno.Exception(
+ "XPropertySet not supported.", this);
+
+ //Finally we can set the value
+ xLeaf.setPropertyValue(m_arStringControls[i], sValue);
+ }
+
+ //Committing the changes will cause or changes to be written to the registry.
+ XChangesBatch xUpdateCommit =
+ UnoRuntime.queryInterface(XChangesBatch.class, m_xAccessLeaves);
+ xUpdateCommit.commitChanges();
+ }
+
+ private void loadData(com.sun.star.awt.XWindow aWindow)
+ throws com.sun.star.uno.Exception {
+
+ //Determine the name of the window. This serves two purposes. First, if this
+ //window is supported by this handler and second we use the name two locate
+ //the corresponding data in the registry.
+ String sWindowName = getWindowName(aWindow);
+ if (sWindowName == null)
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "The window is not supported by this handler", this, (short) -1);
+
+ //To access the separate controls of the window we need to obtain the
+ //XControlContainer from window implementation
+ XControlContainer xContainer = UnoRuntime.queryInterface(
+ XControlContainer.class, aWindow);
+ if (xContainer == null)
+ throw new com.sun.star.uno.Exception(
+ "Could not get XControlContainer from window.", this);
+
+ //This is an implementation which will be used for several options pages
+ //which all have the same controls. m_arStringControls is an array which
+ //contains the names.
+ for (int i = 0; i < m_arStringControls.length; i++) {
+
+ //load the values from the registry
+ //To access the registry we have previously created a service instance
+ //of com.sun.star.configuration.ConfigurationUpdateAccess which supports
+ //com.sun.star.container.XNameAccess. We obtain now the section
+ //of the registry which is assigned to this options page.
+ XPropertySet xLeaf = UnoRuntime.queryInterface(
+ XPropertySet.class, m_xAccessLeaves.getByName(sWindowName));
+ if (xLeaf == null)
+ throw new com.sun.star.uno.Exception(
+ "XPropertySet not supported.", this);
+
+ //The properties in the registry have the same name as the respective
+ //controls. We use the names now to obtain the property values.
+ Object aValue = xLeaf.getPropertyValue(m_arStringControls[i]);
+
+ //Now that we have the value we need to set it at the corresponding
+ //control in the window. The XControlContainer, which we obtained earlier
+ //is the means to get hold of all the controls.
+ XControl xControl = xContainer.getControl(m_arStringControls[i]);
+
+ //This generic handler and the corresponding registry schema support
+ //up to five text controls. However, if an options page does not use all
+ //five controls then we will not complain here.
+ if (xControl == null)
+ continue;
+
+ //From the control we get the model, which in turn supports the
+ //XPropertySet interface, which we finally use to set the data at the
+ //control
+ XPropertySet xProp = UnoRuntime.queryInterface(
+ XPropertySet.class, xControl.getModel());
+
+ if (xProp == null)
+ throw new com.sun.star.uno.Exception(
+ "Could not get XPropertySet from control.", this);
+
+ //This handler supports only text controls, which are named "Pattern Field"
+ //in the dialog editor. We set the "Text" property.
+ xProp.setPropertyValue("Text", aValue);
+ }
+ }
+
+ //Checks if the name property of the window is one of the supported names and returns
+ //always a valid string or null
+ private String getWindowName(com.sun.star.awt.XWindow aWindow)
+ throws com.sun.star.uno.Exception {
+
+ if (aWindow == null)
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Method external_event requires that a window is passed as argument",
+ this, (short) -1);
+
+ //We need to get the control model of the window. Therefore the first step is
+ //to query for it.
+ XControl xControlDlg = UnoRuntime.queryInterface(
+ XControl.class, aWindow);
+
+ if (xControlDlg == null)
+ throw new com.sun.star.uno.Exception(
+ "Cannot obtain XControl from XWindow in method external_event.");
+ //Now get model
+ XControlModel xModelDlg = xControlDlg.getModel();
+
+ if (xModelDlg == null)
+ throw new com.sun.star.uno.Exception(
+ "Cannot obtain XControlModel from XWindow in method external_event.", this);
+ //The model itself does not provide any information except that its
+ //implementation supports XPropertySet which is used to access the data.
+ XPropertySet xPropDlg = UnoRuntime.queryInterface(
+ XPropertySet.class, xModelDlg);
+ if (xPropDlg == null)
+ throw new com.sun.star.uno.Exception(
+ "Cannot obtain XPropertySet from window in method external_event.", this);
+
+ //Get the "Name" property of the window
+ Object aWindowName = xPropDlg.getPropertyValue("Name");
+
+ //Get the string from the returned com.sun.star.uno.Any
+ String sName = null;
+ try {
+ sName = AnyConverter.toString(aWindowName);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ throw new com.sun.star.uno.Exception(ex,
+ "Name - property of window is not a string.", this);
+ }
+
+ //Eventually we can check if we this handler can "handle" this options page.
+ //The class has a member m_arWindowNames which contains all names of windows
+ //for which it is intended
+ for (int i = 0; i < m_arWindowNames.length; i++) {
+ if (m_arWindowNames[i].equals(sName)) {
+ return sName;
+ }
+ }
+ return null;
+ }
+ }
+
+
+ /**
+ * Gives a factory for creating the service.
+ * This method is called by the <code>JavaLoader</code>
+ * <p>
+ * @return returns a <code>XSingleComponentFactory</code> for creating
+ * the component
+ * @param sImplName the name of the implementation for which a
+ * service is desired
+ * @see com.sun.star.comp.loader.JavaLoader
+ */
+ public static XSingleComponentFactory __getComponentFactory(String sImplName)
+ {
+ XSingleComponentFactory xFactory = null;
+
+ if ( sImplName.equals( _OptionsEventHandler.class.getName() ) )
+ xFactory = Factory.createComponentFactory(_OptionsEventHandler.class,
+ _OptionsEventHandler.getServiceNames());
+
+ return xFactory;
+ }
+
+ /**
+ * Writes the service information into the given registry key.
+ * This method is called by the <code>JavaLoader</code>
+ * <p>
+ * @return returns true if the operation succeeded
+ * @param regKey the registryKey
+ * @see com.sun.star.comp.loader.JavaLoader
+ */
+ public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
+ return Factory.writeRegistryServiceInfo(_OptionsEventHandler.class.getName(),
+ _OptionsEventHandler.getServiceNames(),
+ regKey);
+ }
+
+ /** This method is a member of the interface for initializing an object
+ * directly after its creation.
+ * @param object This array of arbitrary objects will be passed to the
+ * component after its creation.
+ * @throws Exception Every exception will not be handled, but will be
+ * passed to the caller.
+ */
+ public void initialize( Object[] object )
+ throws com.sun.star.uno.Exception {
+ }
+
+}
diff --git a/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/makefile.mk b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/makefile.mk
new file mode 100644
index 0000000000..4174e3bd71
--- /dev/null
+++ b/desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/makefile.mk
@@ -0,0 +1,44 @@
+#
+# 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/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+PRJ = ..$/..$/..$/..$/..$/..$/..$/..$/..
+PRJNAME = desktop
+PACKAGE = com$/sun$/star$/comp$/extensionoptions
+TARGET = options
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+JARFILES = ridl.jar jurt.jar unoil.jar juh.jar
+
+
+JARTARGET = extensionoptions.jar
+JARCOMPRESS = TRUE
+CUSTOMMANIFESTFILE = MANIFEST.MF
+JARCLASSDIRS=com
+
+
+# --- Files --------------------------------------------------------
+
+JAVAFILES = OptionsEventHandler.java
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/desktop/test/deployment/options/leaf1.oxt b/desktop/test/deployment/options/leaf1.oxt
new file mode 100644
index 0000000000..9c3ff86985
--- /dev/null
+++ b/desktop/test/deployment/options/leaf1.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/leaf1mod.oxt b/desktop/test/deployment/options/leaf1mod.oxt
new file mode 100644
index 0000000000..d5d9fe6896
--- /dev/null
+++ b/desktop/test/deployment/options/leaf1mod.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/leaf2.oxt b/desktop/test/deployment/options/leaf2.oxt
new file mode 100644
index 0000000000..b95628900c
--- /dev/null
+++ b/desktop/test/deployment/options/leaf2.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/leaves1.oxt b/desktop/test/deployment/options/leaves1.oxt
new file mode 100644
index 0000000000..037389a018
--- /dev/null
+++ b/desktop/test/deployment/options/leaves1.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/leaves2.oxt b/desktop/test/deployment/options/leaves2.oxt
new file mode 100644
index 0000000000..531b385663
--- /dev/null
+++ b/desktop/test/deployment/options/leaves2.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/leaves3.oxt b/desktop/test/deployment/options/leaves3.oxt
new file mode 100644
index 0000000000..f5bb0f2262
--- /dev/null
+++ b/desktop/test/deployment/options/leaves3.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/modules1.oxt b/desktop/test/deployment/options/modules1.oxt
new file mode 100644
index 0000000000..bae652ffbc
--- /dev/null
+++ b/desktop/test/deployment/options/modules1.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/modules2.oxt b/desktop/test/deployment/options/modules2.oxt
new file mode 100644
index 0000000000..d6d7956d45
--- /dev/null
+++ b/desktop/test/deployment/options/modules2.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/nodes1.oxt b/desktop/test/deployment/options/nodes1.oxt
new file mode 100644
index 0000000000..b1dfa18d3e
--- /dev/null
+++ b/desktop/test/deployment/options/nodes1.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/nodes2.oxt b/desktop/test/deployment/options/nodes2.oxt
new file mode 100644
index 0000000000..a35cfaba9d
--- /dev/null
+++ b/desktop/test/deployment/options/nodes2.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/nodes3.oxt b/desktop/test/deployment/options/nodes3.oxt
new file mode 100644
index 0000000000..db0bc49da5
--- /dev/null
+++ b/desktop/test/deployment/options/nodes3.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/nodes4.oxt b/desktop/test/deployment/options/nodes4.oxt
new file mode 100644
index 0000000000..fe0550fdc6
--- /dev/null
+++ b/desktop/test/deployment/options/nodes4.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/nodes5.oxt b/desktop/test/deployment/options/nodes5.oxt
new file mode 100644
index 0000000000..893e9ee3e2
--- /dev/null
+++ b/desktop/test/deployment/options/nodes5.oxt
Binary files differ
diff --git a/desktop/test/deployment/options/readme.txt b/desktop/test/deployment/options/readme.txt
new file mode 100644
index 0000000000..58274ece79
--- /dev/null
+++ b/desktop/test/deployment/options/readme.txt
@@ -0,0 +1,200 @@
+Important: The handler component extensionoptions.jar in the extensions may not
+contain exactly the same sources as the one build in the handler directory. To
+make sure that debugging works build the handler directory and put the
+extensionoptions.jar into the extension.
+
+
+
+leaf1.oxt: Defines a leaf under the node WriterNode
+================================================================================
+
+leaf1mod.oxt: Defines a leaf under the node WriterNode
+
+It has a duplicate entry in the manifest.xml (OptionsDialog.xcu). This would cause a DisposedException when uninstalling on OOo 3.0 and prevent the extension from being uninstalled. This is actually a bug of the extensions. However, the error is difficult to investigate. Therefore this was fixed to make OOo more robust (i96690).
+================================================================================
+
+leaf2.oxt: Defines a leaf under a node that has a name which requires special
+"xml encoding". The name is "My Writer's & Settings". The node is not assigned
+to a Module and the Node/AllModules property is not true. This is a typical
+scenario when a Node had been added to an existing Module and later the Module
+was removed. This is a situation which actually should not occur. In this case
+DO NOT show the Node in the OOo's options dialog, because it shows only nodes
+for a particular module and in this case the Module for the Node is unknown.
+In the Extension Manager's
+options dialog this Node can be shown because the Module is irrelevant.
+See also nodes5.oxt.
+================================================================================
+
+leaves1.oxt: multiple ordered leaves under available nodes. The leaves Labels are
+localized for en-US and de. The following leaves should appear:
+
+Writer:
+-leaves1 Writer 1 en-US
+-leaves1 Writer 2 en-US
+-leaves1 Writer 3 en-US
+
+Calc:
+-leaves1 Calc 3 en-US
+-leaves1 Calc 3 en-US
+-leaves1 Calc 3 en-US
+
+Draw:
+-leaves1 Draw 3 en-US
+-leaves1 Draw 3 en-US
+-leaves1 Draw 3 en-US
+
+If a german office is used then the strings contain "de" instead of "en-US".
+================================================================================
+
+leaves2.oxt: Same as leaves1.oxt. Use together with leaves1.oxt to test the
+grouping of leaves.
+================================================================================
+
+leaves3.oxt: Same as leaves1.oxt, but the leaves are not ordered.
+================================================================================
+
+nodes1.oxt: Defines one node which has AllModules set and which has
+no children. Therefore this node should not be displayed.
+================================================================================
+
+nodes2.oxt: Defines 3 nodes which use AllModules and which form an
+ordered group. Every node defines also 3 nodes which have a determined order.
+
+-nodes2 node 1 en-US
+ -nodes2 node 1 leaf 1 en-US
+ -nodes2 node 1 leaf 2 en-US
+ -nodes2 node 1 leaf 3 en-US
+
+-nodes2 node 2 en-US
+ -nodes2 node 2 leaf 1 en-US
+ -nodes2 node 2 leaf 2 en-US
+ -nodes2 node 2 leaf 3 en-US
+
+-nodes2 node 3 en-US
+ -nodes2 node 3 leaf 1 en-US
+ -nodes2 node 3 leaf 2 en-US
+ -nodes2 node 3 leaf 3 en-US
+
+================================================================================
+
+nodes3.oxt: Defines 3 nodes which are placed under different existing Modules.
+The nodes and there leaves are ordered.
+
+Context Writer:
+- nodes3 node 1
+ nodes3 node 1 leaf 1 en-US
+ nodes3 node 1 leaf 2 en-US
+ nodes3 node 1 leaf 3 en-US
+
+- nodes3 node 2
+ nodes3 node 2 leaf 1 en-US
+ nodes3 node 2 leaf 2 en-US
+ nodes3 node 2 leaf 3 en-US
+
+- nodes3 node 3
+ nodes3 node 3 leaf 1 en-US
+ nodes3 node 3 leaf 2 en-US
+ nodes3 node 3 leaf 3 en-US
+
+Context Calc:
+- nodes3 node 1
+ nodes3 node 1 leaf 1 en-US
+ nodes3 node 1 leaf 2 en-US
+ nodes3 node 1 leaf 3 en-US
+
+- nodes3 node 3
+ nodes3 node 3 leaf 1 en-US
+ nodes3 node 3 leaf 2 en-US
+ nodes3 node 3 leaf 3 en-US
+
+Context Draw:
+- nodes3 node 2
+ nodes3 node 2 leaf 1 en-US
+ nodes3 node 2 leaf 2 en-US
+ nodes3 node 2 leaf 3 en-US
+
+================================================================================
+
+nodes4.oxt: Same as nodes3.oxt. Use together with nodes3.txt to test the
+grouping of nodes.
+================================================================================
+
+nodes5.oxt: Defines a node which in turn defines 3 leaves. The Node
+is not assigned to a Module and the AllModule property is false (which is the
+default).This may happen when a node
+had been added to an already existing Module and then this Module was removed. For
+example, an extension adds a node to the "Writer Module" and the
+next office update removes the "Writer Module" (which is rather inconceivable).
+Then the node and its leaves MUST NOT be displayed in OOo's options dialog,
+because the Module is not known. However, it can be displayed in the
+options dialog of the Extension Manager. See also the description for leaf2.oxt.
+================================================================================
+
+modules1.oxt: Defines two Modules and three Nodes. The Nodes may not
+be displayed in OOo's options dialog because there is currently no application
+which uses this Module. However the Nodes are displayed in the options dialog
+of the Extension Manager.
+There are three Nodes defined. The relationship is this:
+
+-module1
+ -node 1
+ -leaf 1
+ -leaf 2
+ -leaf 3
+ -node 2
+ -leaf 1
+ -leaf 2
+ -leaf 3
+ -node 3
+ -leaf 1
+ -leaf 2
+ -leaf 3
+
+-module2
+ -node1
+ -leaf 1
+ -leaf 2
+ -leaf 3
+ -node3
+ -leaf 1
+ -leaf 2
+ -leaf 3
+
+The options dialog of the Extension Manager shall display only three nodes:
+
+ -node 1
+ -leaf 1
+ -leaf 2
+ -leaf 3
+ -node 2
+ -leaf 1
+ -leaf 2
+ -leaf 3
+ -node 3
+ -leaf 1
+ -leaf 2
+ -leaf 3
+
+or
+
+ -node 1
+ -leaf 1
+ -leaf 2
+ -leaf 3
+ -node 3
+ -leaf 1
+ -leaf 2
+ -leaf 3
+ -node 2
+ -leaf 1
+ -leaf 2
+ -leaf 3
+
+Since the order of Module|s is not defined, the dialog may display first the
+Nodes from module2 and then from module1. If a node is already displayed then
+it is not shown again.
+
+================================================================================
+
+modules2.oxt: Same as modules1, except that the order of nodes and leaves
+is not defined.
diff --git a/desktop/test/deployment/passive/Addons.xcu b/desktop/test/deployment/passive/Addons.xcu
new file mode 100644
index 0000000000..3cc7c45ed6
--- /dev/null
+++ b/desktop/test/deployment/passive/Addons.xcu
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<o:items xmlns:o="http://openoffice.org/2001/registry">
+ <item o:path="/org.openoffice.Office.Addons">
+ <node o:name="AddonUI">
+ <node o:name="OfficeMenuBar">
+ <node o:name="org.openoffice.test.desktop.deployment.passive"
+ o:op="replace">
+ <prop o:name="Title" xml:lang="en-US">
+ <value>passive</value>
+ </prop>
+ <node o:name="Submenu">
+ <node o:name="1" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_native:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>native</value>
+ </prop>
+ </node>
+ <node o:name="2" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_java:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>java</value>
+ </prop>
+ </node>
+ <node o:name="3" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_python:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>python</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+ </node>
+ <node o:name="OfficeToolBar">
+ <node o:name="org.openoffice.test.desktop.deployment.passive" o:op="replace">
+ <node o:name="1" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_native:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>native</value>
+ </prop>
+ <prop o:name="Context">
+ <value/>
+ </prop>
+ </node>
+ </node>
+ </node>
+ </node>
+ </item>
+</o:items>
diff --git a/desktop/test/deployment/passive/MANIFEST.MF b/desktop/test/deployment/passive/MANIFEST.MF
new file mode 100644
index 0000000000..45a04bf263
--- /dev/null
+++ b/desktop/test/deployment/passive/MANIFEST.MF
@@ -0,0 +1,3 @@
+Sealed: true
+RegistrationClassName: com.sun.star.comp.test.deployment.passive_java.Services
+UNO-Type-Path:
diff --git a/desktop/test/deployment/passive/META-INF/manifest.xml b/desktop/test/deployment/passive/META-INF/manifest.xml
new file mode 100644
index 0000000000..c387b4be44
--- /dev/null
+++ b/desktop/test/deployment/passive/META-INF/manifest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<m:manifest xmlns:m="http://openoffice.org/2001/manifest">
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="Addons.xcu"/>
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="ProtocolHandler.xcu"/>
+ <m:file-entry m:media-type="application/vnd.sun.star.help" m:full-path="help"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-components;platform=@PLATFORM@"
+ m:full-path="platform.components"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-components"
+ m:full-path="generic.components"/>
+</m:manifest>
diff --git a/desktop/test/deployment/passive/ProtocolHandler.xcu b/desktop/test/deployment/passive/ProtocolHandler.xcu
new file mode 100644
index 0000000000..f546fd1193
--- /dev/null
+++ b/desktop/test/deployment/passive/ProtocolHandler.xcu
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="ProtocolHandler">
+ <node o:name="HandlerSet">
+ <node o:name="com.sun.star.test.deployment.passive_native" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_native:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.passive_java" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_java:*</value>
+ </prop>
+ </node>
+ <node o:name="com.sun.star.test.deployment.passive_python" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.passive_python:*</value>
+ </prop>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Dispatch.java b/desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Dispatch.java
new file mode 100644
index 0000000000..74882bca55
--- /dev/null
+++ b/desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Dispatch.java
@@ -0,0 +1,95 @@
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package com.sun.star.comp.test.deployment.passive_java;
+
+import com.sun.star.awt.MessageBoxButtons;
+import com.sun.star.awt.MessageBoxType;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XMessageBox;
+import com.sun.star.awt.XMessageBoxFactory;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XStatusListener;
+import com.sun.star.lang.WrappedTargetRuntimeException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Dispatch extends WeakBase implements XServiceInfo, XDispatch
+{
+ public Dispatch(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return false; //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public void dispatch(URL URL, PropertyValue[] Arguments) {
+ try {
+ XMultiComponentFactory smgr = UnoRuntime.queryInterface(
+ XMultiComponentFactory.class, context.getServiceManager());
+ XMessageBox box = UnoRuntime.queryInterface(
+ XMessageBoxFactory.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.awt.Toolkit", context)).
+ createMessageBox(
+ UnoRuntime.queryInterface(
+ XWindowPeer.class,
+ (UnoRuntime.queryInterface(
+ XDesktop.class,
+ smgr.createInstanceWithContext(
+ "com.sun.star.frame.Desktop", context)).
+ getCurrentFrame().getComponentWindow())),
+ MessageBoxType.INFOBOX, MessageBoxButtons.BUTTONS_OK,
+ "passive", "java");
+ box.execute();
+ UnoRuntime.queryInterface(XComponent.class, box).dispose();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ throw e;
+ } catch (com.sun.star.uno.Exception e) {
+ throw new WrappedTargetRuntimeException(e,
+ "wrapped: " + e.getMessage(), this, e);
+ }
+ }
+
+ public void addStatusListener(XStatusListener Control, URL URL) {}
+
+ public void removeStatusListener(XStatusListener Control, URL URL) {}
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.passive_java_singleton";
+
+ static final String[] serviceNames = new String[0];
+}
diff --git a/desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Provider.java b/desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Provider.java
new file mode 100644
index 0000000000..13d59ecf1b
--- /dev/null
+++ b/desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Provider.java
@@ -0,0 +1,74 @@
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package com.sun.star.comp.test.deployment.passive_java;
+
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.URL;
+
+public final class Provider extends WeakBase
+ implements XServiceInfo, XDispatchProvider
+{
+ public Provider(XComponentContext context) {
+ this.context = context;
+ }
+
+ public String getImplementationName() { return implementationName; }
+
+ public boolean supportsService(String ServiceName) {
+ return ServiceName.equals(getSupportedServiceNames()[0]); //TODO
+ }
+
+ public String[] getSupportedServiceNames() {
+ return serviceNames;
+ }
+
+ public XDispatch queryDispatch(
+ URL URL, String TargetFrameName, int SearchFlags)
+ {
+ return UnoRuntime.queryInterface(
+ XDispatch.class,
+ context.getValueByName(
+ "/singletons/" +
+ "com.sun.star.test.deployment.passive_java_singleton"));
+ }
+
+ public XDispatch[] queryDispatches(DispatchDescriptor[] Requests) {
+ XDispatch[] s = new XDispatch[Requests.length];
+ for (int i = 0; i < s.length; ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+ }
+
+ private final XComponentContext context;
+
+ static final String implementationName =
+ "com.sun.star.comp.test.deployment.passive_java";
+
+ static final String[] serviceNames = new String[] {
+ "com.sun.star.test.deployment.passive_java" };
+}
diff --git a/desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Services.java b/desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Services.java
new file mode 100644
index 0000000000..b14ba71027
--- /dev/null
+++ b/desktop/test/deployment/passive/com/sun/star/comp/test/deployment/Services.java
@@ -0,0 +1,42 @@
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package com.sun.star.comp.test.deployment.passive_java;
+
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.lib.uno.helper.Factory;
+
+public final class Services {
+ private Services() {}
+
+ public static XSingleComponentFactory __getComponentFactory(
+ String implementation)
+ {
+ if (implementation.equals(Dispatch.implementationName)) {
+ return Factory.createComponentFactory(
+ Dispatch.class, Dispatch.implementationName,
+ Dispatch.serviceNames);
+ } else if (implementation.equals(Provider.implementationName)) {
+ return Factory.createComponentFactory(
+ Provider.class, Provider.implementationName,
+ Provider.serviceNames);
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/desktop/test/deployment/passive/description.xml b/desktop/test/deployment/passive/description.xml
new file mode 100644
index 0000000000..b0fdea19e6
--- /dev/null
+++ b/desktop/test/deployment/passive/description.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:identifier
+ value="org.openoffice/framework/desktop/test/deployment/passive"/>
+ <d:version value="1"/>
+ <d:dependencies>
+ <d:OpenOffice.org-minimal-version d:name="OpenOffice.org 3.4" value="3.4"/>
+ </d:dependencies>
+</d:description>
diff --git a/desktop/test/deployment/passive/help/en/help.tree b/desktop/test/deployment/passive/help/en/help.tree
new file mode 100644
index 0000000000..76a07991d8
--- /dev/null
+++ b/desktop/test/deployment/passive/help/en/help.tree
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+-->
+<tree_view version="10-Aug-2010">
+ <help_section application="OrgOpenofficeFrameworkDesktopTestDeploymentPassive" id=""
+ title="The test-passive Extension">
+ <topic
+ id="OrgOpenofficeFrameworkDesktopTestDeploymentPassive/org.openoffice%2Fframework%2Fdesktop%2Ftest%2Fdeployment%2Fpassive/main.xhp">The test-passive Extension</topic>
+ </help_section>
+</tree_view>
diff --git a/desktop/test/deployment/passive/help/en/main.xhp b/desktop/test/deployment/passive/help/en/main.xhp
new file mode 100644
index 0000000000..ff62c6b682
--- /dev/null
+++ b/desktop/test/deployment/passive/help/en/main.xhp
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+-->
+<helpdocument version="1.0">
+ <meta>
+ <topic id="" indexer="include">
+ <title xml-lang="en" id="">The test-passive Extension</title>
+ <filename>/org.openoffice%2Fframework%2Fdesktop%2Ftest%2Fdeployment%2Fpassive/main.xhp</filename>
+ <bookmark branch="index" xml-lang="en" id="">
+ <bookmark_value>test-passive extension</bookmark_value>
+ <bookmark_value>extensions;test-passive</bookmark_value>
+ </bookmark>
+ <bookmark branch="index" xml-lang="en" id="_scalc_swriter">
+ <bookmark_value>test-passive extension in Calc and Writer</bookmark_value>
+ </bookmark>
+ </topic>
+ </meta>
+ <body>
+ <bookmark branch="hid/vnd.org.openoffice.test.desktop.deployment.passive_native:" xml-lang="en"
+ id=""/>
+ <paragraph role="paragraph" id="" xml-lang="en">
+ <ahelp hid="vnd.org.openoffice.test.desktop.deployment.passive_native:" visibility="hidden">
+ Show the test-passive extension's native dialog
+ </ahelp>
+ </paragraph>
+ <paragraph role="heading" level="1" id="" xml-lang="en">The test-passive Extension</paragraph>
+ <paragraph role="paragraph" id="" xml-lang="en">Bla bla bla.</paragraph>
+ </body>
+</helpdocument>
diff --git a/desktop/test/deployment/passive/passive_java.component b/desktop/test/deployment/passive/passive_java.component
new file mode 100644
index 0000000000..35ff0fcdfd
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_java.component
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.test.deployment.passive_java">
+ <service name="com.sun.star.test.deployment.passive_java"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.test.deployment.passive_java_singleton">
+ <singleton name="com.sun.star.test.deployment.passive_java_singleton"/>
+ </implementation>
+</component>
diff --git a/desktop/test/deployment/passive/passive_native.component b/desktop/test/deployment/passive/passive_native.component
new file mode 100644
index 0000000000..37d13e53dd
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_native.component
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.test.deployment.passive_native">
+ <service name="com.sun.star.test.deployment.passive_native"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.test.deployment.passive_native_singleton">
+ <singleton name="com.sun.star.test.deployment.passive_native_singleton"/>
+ </implementation>
+</component>
diff --git a/desktop/test/deployment/passive/passive_native.cxx b/desktop/test/deployment/passive/passive_native.cxx
new file mode 100644
index 0000000000..9bfbcb7b16
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_native.cxx
@@ -0,0 +1,248 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <sal/config.h>
+
+#include <cassert>
+
+#include <com/sun/star/awt/MessageBoxButtons.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/awt/Toolkit.hpp>
+#include <com/sun/star/awt/XMessageBox.hpp>
+#include <com/sun/star/awt/XWindowPeer.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/frame/DispatchDescriptor.hpp>
+#include <com/sun/star/frame/Desktop.hpp>
+#include <com/sun/star/frame/XDispatch.hpp>
+#include <com/sun/star/frame/XDispatchProvider.hpp>
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/frame/XStatusListener.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/uno/DeploymentException.hpp>
+#include <com/sun/star/uno/Exception.hpp>
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/uno/RuntimeException.hpp>
+#include <com/sun/star/uno/Sequence.hxx>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/uno/XInterface.hpp>
+#include <com/sun/star/util/URL.hpp>
+#include <cppuhelper/factory.hxx>
+#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implementationentry.hxx>
+#include <cppuhelper/supportsservice.hxx>
+#include <cppuhelper/weak.hxx>
+#include <rtl/ustring.hxx>
+#include <sal/types.h>
+#include <uno/lbnames.h>
+
+namespace {
+
+class Provider:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatchProvider >
+{
+public:
+ Provider(const Provider&) = delete;
+ const Provider& operator=(const Provider&) = delete;
+
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ { return static_cast< cppu::OWeakObject * >(new Provider(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames();
+
+private:
+ explicit Provider(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { assert(context.is()); }
+
+ virtual ~Provider() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName() override
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName) override
+ { return cppu::supportsService(this, ServiceName); }
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() override
+ { return static_getSupportedServiceNames(); }
+
+ virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32) override;
+
+ virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+ SAL_CALL queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests) override;
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Provider::static_getImplementationName() {
+ return rtl::OUString("com.sun.star.comp.test.deployment.passive_native");
+}
+
+css::uno::Sequence< rtl::OUString > Provider::static_getSupportedServiceNames()
+{
+ rtl::OUString name("com.sun.star.test.deployment.passive_native");
+ return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
+css::uno::Reference< css::frame::XDispatch > Provider::queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32)
+{
+ css::uno::Reference< css::frame::XDispatch > dispatch;
+ if (!(context_->getValueByName(
+ "/singletons/com.sun.star.test.deployment."
+ "passive_native_singleton") >>=
+ dispatch) ||
+ !dispatch.is())
+ {
+ throw css::uno::DeploymentException(
+ "component context fails to supply singleton"
+ " com.sun.star.test.deployment.passive_native_singleton of type"
+ " com.sun.star.frame.XDispatch",
+ context_);
+ }
+ return dispatch;
+}
+
+css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+Provider::queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+{
+ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > s(
+ Requests.getLength());
+ for (sal_Int32 i = 0; i < s.getLength(); ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+}
+
+class Dispatch:
+ public cppu::WeakImplHelper2<
+ css::lang::XServiceInfo, css::frame::XDispatch >
+{
+public:
+ Dispatch(const Dispatch&) = delete;
+ const Dispatch& operator=(const Dispatch&) = delete;
+
+ static css::uno::Reference< css::uno::XInterface > SAL_CALL static_create(
+ css::uno::Reference< css::uno::XComponentContext > const & xContext)
+ { return static_cast< cppu::OWeakObject * >(new Dispatch(xContext)); }
+
+ static rtl::OUString SAL_CALL static_getImplementationName();
+
+ static css::uno::Sequence< rtl::OUString > SAL_CALL
+ static_getSupportedServiceNames()
+ { return css::uno::Sequence< rtl::OUString >(); }
+
+private:
+ explicit Dispatch(
+ css::uno::Reference< css::uno::XComponentContext > const & context):
+ context_(context) { assert(context.is()); }
+
+ virtual ~Dispatch() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName() override
+ { return static_getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName) override
+ { return cppu::supportsService(this, ServiceName); }
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() override
+ { return static_getSupportedServiceNames(); }
+
+ virtual void SAL_CALL dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &) override;
+
+ virtual void SAL_CALL addStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &) override
+ {}
+
+ virtual void SAL_CALL removeStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &) override
+ {}
+
+ css::uno::Reference< css::uno::XComponentContext > context_;
+};
+
+rtl::OUString Dispatch::static_getImplementationName() {
+ return rtl::OUString(
+ "com.sun.star.comp.test.deployment.passive_native_singleton");
+}
+
+void Dispatch::dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+{
+ css::uno::Reference< css::frame::XDesktop2 > xDesktop = css::frame::Desktop::create(context_);
+ css::uno::Reference< css::frame::XFrame > xFrame = xDesktop->getCurrentFrame();
+ css::uno::Reference< css::awt::XWindowPeer > xWindowPeer( xFrame->getComponentWindow(), css::uno::UNO_QUERY_THROW );
+ css::uno::Reference< css::awt::XToolkit2 > xToolkit = css::awt::Toolkit::create(context_);
+ css::uno::Reference< css::awt::XMessageBox > box(
+ xToolkit->createMessageBox(
+ xWindowPeer,
+ css::awt::MessageBoxType_INFOBOX,
+ css::awt::MessageBoxButtons::BUTTONS_OK, "passive", "native"),
+ css::uno::UNO_SET_THROW);
+
+ box->execute();
+
+ css::uno::Reference< css::lang::XComponent > xComponent(box, css::uno::UNO_QUERY_THROW);
+ xComponent->dispose();
+}
+
+cppu::ImplementationEntry const services[] = {
+ { &Provider::static_create, &Provider::static_getImplementationName,
+ &Provider::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, nullptr, 0 },
+ { &Dispatch::static_create, &Dispatch::static_getImplementationName,
+ &Dispatch::static_getSupportedServiceNames,
+ &cppu::createSingleComponentFactory, nullptr, 0 },
+ { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }
+};
+
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT void * component_getFactory(
+ char const * pImplName, void * pServiceManager, void * pRegistryKey)
+{
+ return cppu::component_getFactoryHelper(
+ pImplName, pServiceManager, pRegistryKey, services);
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT void
+component_getImplementationEnvironment(
+ char const ** ppEnvTypeName, uno_Environment **)
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/test/deployment/passive/passive_python.component b/desktop/test/deployment/passive/passive_python.component
new file mode 100644
index 0000000000..6007f9fcf1
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_python.component
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<component loader="com.sun.star.loader.Python"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.test.deployment.passive_python">
+ <service name="com.sun.star.test.deployment.passive_python"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.test.deployment.passive_python_singleton">
+ <singleton name="com.sun.star.test.deployment.passive_python_singleton"/>
+ </implementation>
+</component>
diff --git a/desktop/test/deployment/passive/passive_python.py b/desktop/test/deployment/passive/passive_python.py
new file mode 100644
index 0000000000..f16797e501
--- /dev/null
+++ b/desktop/test/deployment/passive/passive_python.py
@@ -0,0 +1,93 @@
+#
+# 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/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+import uno
+import unohelper
+
+from com.sun.star.awt import Rectangle
+from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK
+from com.sun.star.awt.MessageBoxType import INFOBOX
+from com.sun.star.frame import XDispatch, XDispatchProvider
+from com.sun.star.lang import XServiceInfo
+
+class Provider(unohelper.Base, XServiceInfo, XDispatchProvider):
+ implementationName = "com.sun.star.comp.test.deployment.passive_python"
+
+ serviceNames = ("com.sun.star.test.deployment.passive_python",)
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def queryDispatch(self, URL, TargetFrame, SearchFlags):
+ return self.context.getValueByName( \
+ "/singletons/com.sun.star.test.deployment.passive_python_singleton")
+
+ def queryDispatches(self, Requests):
+ tuple( \
+ self.queryDispatch(i.FeatureURL, i.FrameName, i.SearchFlags) \
+ for i in Requests)
+
+class Dispatch(unohelper.Base, XServiceInfo, XDispatch):
+ implementationName = \
+ "com.sun.star.comp.test.deployment.passive_python_singleton"
+
+ serviceNames = ()
+
+ def __init__(self, context):
+ self.context = context
+
+ def getImplementationName(self):
+ return self.implementationName
+
+ def supportsService(self, ServiceName):
+ return ServiceName in self.serviceNames
+
+ def getSupportedServiceNames(self):
+ return self.serviceNames
+
+ def dispatch(self, URL, Arguments):
+ smgr = self.context.getServiceManager()
+ box = smgr.createInstanceWithContext( \
+ "com.sun.star.awt.Toolkit", self.context).createMessageBox( \
+ smgr.createInstanceWithContext( \
+ "com.sun.star.frame.Desktop", self.context). \
+ getCurrentFrame().getComponentWindow(), \
+ INFOBOX, BUTTONS_OK, "passive", "python")
+ box.execute();
+ box.dispose();
+
+ def addStatusListener(self, Control, URL):
+ pass
+
+ def removeStatusListener(self, Control, URL):
+ pass
+
+g_ImplementationHelper = unohelper.ImplementationHelper()
+g_ImplementationHelper.addImplementation( \
+ Provider, Provider.implementationName, Provider.serviceNames)
+g_ImplementationHelper.addImplementation( \
+ Dispatch, Dispatch.implementationName, Dispatch.serviceNames)
diff --git a/desktop/test/deployment/simple_license/BadDesc.oxt b/desktop/test/deployment/simple_license/BadDesc.oxt
new file mode 100644
index 0000000000..436778d54d
--- /dev/null
+++ b/desktop/test/deployment/simple_license/BadDesc.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/BadNamespace.oxt b/desktop/test/deployment/simple_license/BadNamespace.oxt
new file mode 100644
index 0000000000..e439c9e171
--- /dev/null
+++ b/desktop/test/deployment/simple_license/BadNamespace.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/BadRoot.oxt b/desktop/test/deployment/simple_license/BadRoot.oxt
new file mode 100644
index 0000000000..1f6c60c992
--- /dev/null
+++ b/desktop/test/deployment/simple_license/BadRoot.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale1.oxt b/desktop/test/deployment/simple_license/Locale1.oxt
new file mode 100644
index 0000000000..51ecb5c75c
--- /dev/null
+++ b/desktop/test/deployment/simple_license/Locale1.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale2.oxt b/desktop/test/deployment/simple_license/Locale2.oxt
new file mode 100644
index 0000000000..bb6b236a5d
--- /dev/null
+++ b/desktop/test/deployment/simple_license/Locale2.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale3.oxt b/desktop/test/deployment/simple_license/Locale3.oxt
new file mode 100644
index 0000000000..56bfedc240
--- /dev/null
+++ b/desktop/test/deployment/simple_license/Locale3.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale4.oxt b/desktop/test/deployment/simple_license/Locale4.oxt
new file mode 100644
index 0000000000..9a465bc7cf
--- /dev/null
+++ b/desktop/test/deployment/simple_license/Locale4.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale5.oxt b/desktop/test/deployment/simple_license/Locale5.oxt
new file mode 100644
index 0000000000..ce16830c13
--- /dev/null
+++ b/desktop/test/deployment/simple_license/Locale5.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Locale6.oxt b/desktop/test/deployment/simple_license/Locale6.oxt
new file mode 100644
index 0000000000..770d32506e
--- /dev/null
+++ b/desktop/test/deployment/simple_license/Locale6.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/LongLic.oxt b/desktop/test/deployment/simple_license/LongLic.oxt
new file mode 100644
index 0000000000..a0a49daeba
--- /dev/null
+++ b/desktop/test/deployment/simple_license/LongLic.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/MissingLic.oxt b/desktop/test/deployment/simple_license/MissingLic.oxt
new file mode 100644
index 0000000000..04d58fd117
--- /dev/null
+++ b/desktop/test/deployment/simple_license/MissingLic.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/MissingLicRef.oxt b/desktop/test/deployment/simple_license/MissingLicRef.oxt
new file mode 100644
index 0000000000..01c9d19a28
--- /dev/null
+++ b/desktop/test/deployment/simple_license/MissingLicRef.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/NoDefLang.oxt b/desktop/test/deployment/simple_license/NoDefLang.oxt
new file mode 100644
index 0000000000..3eadd5254c
--- /dev/null
+++ b/desktop/test/deployment/simple_license/NoDefLang.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/NoDesc.oxt b/desktop/test/deployment/simple_license/NoDesc.oxt
new file mode 100644
index 0000000000..ac83dac97e
--- /dev/null
+++ b/desktop/test/deployment/simple_license/NoDesc.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/NoLang.oxt b/desktop/test/deployment/simple_license/NoLang.oxt
new file mode 100644
index 0000000000..a4f3dd43a0
--- /dev/null
+++ b/desktop/test/deployment/simple_license/NoLang.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/Prefix.oxt b/desktop/test/deployment/simple_license/Prefix.oxt
new file mode 100644
index 0000000000..3e09b8d804
--- /dev/null
+++ b/desktop/test/deployment/simple_license/Prefix.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/ShortLicense.oxt b/desktop/test/deployment/simple_license/ShortLicense.oxt
new file mode 100644
index 0000000000..efcfdc98e1
--- /dev/null
+++ b/desktop/test/deployment/simple_license/ShortLicense.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/ShortLicenseShared.oxt b/desktop/test/deployment/simple_license/ShortLicenseShared.oxt
new file mode 100644
index 0000000000..775559a2c7
--- /dev/null
+++ b/desktop/test/deployment/simple_license/ShortLicenseShared.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/suppress_license.oxt b/desktop/test/deployment/simple_license/suppress_license.oxt
new file mode 100644
index 0000000000..2bacd6aa37
--- /dev/null
+++ b/desktop/test/deployment/simple_license/suppress_license.oxt
Binary files differ
diff --git a/desktop/test/deployment/simple_license/tests_simple_license.odt b/desktop/test/deployment/simple_license/tests_simple_license.odt
new file mode 100644
index 0000000000..b0c86e11c6
--- /dev/null
+++ b/desktop/test/deployment/simple_license/tests_simple_license.odt
Binary files differ
diff --git a/desktop/test/deployment/update/changing_display_name/change1.oxt b/desktop/test/deployment/update/changing_display_name/change1.oxt
new file mode 100644
index 0000000000..c919129ab6
--- /dev/null
+++ b/desktop/test/deployment/update/changing_display_name/change1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/changing_display_name/change1_mod.oxt b/desktop/test/deployment/update/changing_display_name/change1_mod.oxt
new file mode 100644
index 0000000000..5ab99d7bf2
--- /dev/null
+++ b/desktop/test/deployment/update/changing_display_name/change1_mod.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/changing_display_name/readme.txt b/desktop/test/deployment/update/changing_display_name/readme.txt
new file mode 100644
index 0000000000..905f0be9a9
--- /dev/null
+++ b/desktop/test/deployment/update/changing_display_name/readme.txt
@@ -0,0 +1,13 @@
+
+The default display name, if nothing is provided by the extension, is the file name.
+The display name could be changed in different versions. There are three versions
+of change1.oxt available:
+
+v1: no display name
+v2: change1 de
+v3: change1 de - changed display name -
+
+change1_mod.oxt is the same as change1.oxt version 1 except that is has a display name.
+This situation should actually never arise, because the version should always be
+changed when the extension is changed - and be it only the display name.
+
diff --git a/desktop/test/deployment/update/changing_display_name/update1/change1.oxt b/desktop/test/deployment/update/changing_display_name/update1/change1.oxt
new file mode 100644
index 0000000000..ef034f9445
--- /dev/null
+++ b/desktop/test/deployment/update/changing_display_name/update1/change1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/changing_display_name/update1/change1.update.xml b/desktop/test/deployment/update/changing_display_name/update1/change1.update.xml
new file mode 100644
index 0000000000..a7010d13d3
--- /dev/null
+++ b/desktop/test/deployment/update/changing_display_name/update1/change1.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice/framework/desktop/changing_display_name/change1" />
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/changing_display_name/update1/change1.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/changing_display_name/update2/change1.oxt b/desktop/test/deployment/update/changing_display_name/update2/change1.oxt
new file mode 100644
index 0000000000..551f5a3f48
--- /dev/null
+++ b/desktop/test/deployment/update/changing_display_name/update2/change1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/changing_display_name/update2/change1.update.xml b/desktop/test/deployment/update/changing_display_name/update2/change1.update.xml
new file mode 100644
index 0000000000..88458d6705
--- /dev/null
+++ b/desktop/test/deployment/update/changing_display_name/update2/change1.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice/framework/desktop/changing_display_name/change1" />
+ <version value="3.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/changing_display_name/update2/change1.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/default_url/default1.oxt b/desktop/test/deployment/update/default_url/default1.oxt
new file mode 100644
index 0000000000..3fa8c9f08f
--- /dev/null
+++ b/desktop/test/deployment/update/default_url/default1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/default_url/default2.oxt b/desktop/test/deployment/update/default_url/default2.oxt
new file mode 100644
index 0000000000..d54ce88c51
--- /dev/null
+++ b/desktop/test/deployment/update/default_url/default2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/default_url/readme.txt b/desktop/test/deployment/update/default_url/readme.txt
new file mode 100644
index 0000000000..a34c77cea8
--- /dev/null
+++ b/desktop/test/deployment/update/default_url/readme.txt
@@ -0,0 +1,9 @@
+Tests for using the default URL for update information. This URL is currently contained in
+the version.ini (ExtensionUpdateURL) and is used to obtain update information for extensions which do not provide
+a URL themselves.
+
+The extensions default1.oxt and default2.oxt do not have a URL for update information.
+
+To test this one has to put this entry into the version.ini:
+
+ExtensionUpdateURL=http://extensions.openoffice.org/testarea/desktop/default_url/update/feed1.xml
diff --git a/desktop/test/deployment/update/default_url/update/default1.oxt b/desktop/test/deployment/update/default_url/update/default1.oxt
new file mode 100644
index 0000000000..198395c76e
--- /dev/null
+++ b/desktop/test/deployment/update/default_url/update/default1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/default_url/update/default1.update.xml b/desktop/test/deployment/update/default_url/update/default1.update.xml
new file mode 100644
index 0000000000..5c240d6d51
--- /dev/null
+++ b/desktop/test/deployment/update/default_url/update/default1.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.default1.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/default_url/update/default1.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/default_url/update/default2.oxt b/desktop/test/deployment/update/default_url/update/default2.oxt
new file mode 100644
index 0000000000..198395c76e
--- /dev/null
+++ b/desktop/test/deployment/update/default_url/update/default2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/default_url/update/default2.update.xml b/desktop/test/deployment/update/default_url/update/default2.update.xml
new file mode 100644
index 0000000000..9e7e5db1aa
--- /dev/null
+++ b/desktop/test/deployment/update/default_url/update/default2.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.default2.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/default_url/update/default2.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/default_url/update/feed1.xml b/desktop/test/deployment/update/default_url/update/feed1.xml
new file mode 100644
index 0000000000..3f9a2e1d20
--- /dev/null
+++ b/desktop/test/deployment/update/default_url/update/feed1.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
+
+ <title>OpenOffice.org Update Feed</title>
+ <link rel="alternate" type="text/html" href="http://update.services.openoffice.org/ooo/snapshot.html"/>
+ <updated>2006-11-06T18:30:02Z</updated>
+ <author>
+ <name>The OpenOffice.org Project</name>
+ <uri>http://openoffice.org</uri>
+ <email>updatefeed@openoffice.org</email>
+ </author>
+ <id>urn:uuid:a4ccd383-1dd1-11b2-a95c-0003ba566e9d</id>
+ <entry>
+ <title>default1.oxt version 2.0 available</title>
+ <link rel="alternate" type="text/html"
+ href="http://extensions.openoffice.org"/>
+ <id>urn:uuid:a4ccd383-1dd1-11b2-a95c-0003ba566e9f</id>
+ <category term="org.openoffice.legacy.default1.oxt" label="default1.oxt" />
+ <updated>2006-11-06T18:30:02Z</updated>
+ <summary>Click here to go to the download page.</summary>
+ <content type="application/xml" src="http://extensions.openoffice.org/testarea/desktop/default_url/update/default1.update.xml" />
+ </entry>
+ <entry>
+ <title>default2.oxt version 2.0 available</title>
+ <link rel="alternate" type="text/html"
+ href="http://extensions.openoffice.org"/>
+ <id>urn:uuid:a4ccd383-1dd1-11b2-a95c-0003ba566eaf</id>
+ <category term="org.openoffice.legacy.default2.oxt" label="default2.oxt" />
+ <updated>2006-11-06T18:30:02Z</updated>
+ <summary>Click here to go to the download page.</summary>
+ <content type="application/xml" src="http://extensions.openoffice.org/testarea/desktop/default_url/update/default2.update.xml" />
+ </entry>
+</feed>
diff --git a/desktop/test/deployment/update/defect/fail1.oxt b/desktop/test/deployment/update/defect/fail1.oxt
new file mode 100644
index 0000000000..5b5cdba2cd
--- /dev/null
+++ b/desktop/test/deployment/update/defect/fail1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/fail2.oxt b/desktop/test/deployment/update/defect/fail2.oxt
new file mode 100644
index 0000000000..61b0306f09
--- /dev/null
+++ b/desktop/test/deployment/update/defect/fail2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/fail3.oxt b/desktop/test/deployment/update/defect/fail3.oxt
new file mode 100644
index 0000000000..9da26d48a6
--- /dev/null
+++ b/desktop/test/deployment/update/defect/fail3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/fail4.oxt b/desktop/test/deployment/update/defect/fail4.oxt
new file mode 100644
index 0000000000..66b87caa14
--- /dev/null
+++ b/desktop/test/deployment/update/defect/fail4.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/info1.oxt b/desktop/test/deployment/update/defect/info1.oxt
new file mode 100644
index 0000000000..9ffd373fa1
--- /dev/null
+++ b/desktop/test/deployment/update/defect/info1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/info2.oxt b/desktop/test/deployment/update/defect/info2.oxt
new file mode 100644
index 0000000000..229a52c3bc
--- /dev/null
+++ b/desktop/test/deployment/update/defect/info2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/info3.oxt b/desktop/test/deployment/update/defect/info3.oxt
new file mode 100644
index 0000000000..b702f3e004
--- /dev/null
+++ b/desktop/test/deployment/update/defect/info3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/readme.txt b/desktop/test/deployment/update/defect/readme.txt
new file mode 100644
index 0000000000..5e8322f5cf
--- /dev/null
+++ b/desktop/test/deployment/update/defect/readme.txt
@@ -0,0 +1,15 @@
+The updates, that is the newer versions, are defect. However, only fail2.oxt fails to install. The other extensions can be installed directly and through an update.
+
+fail1.oxt: in version2 the contained t.rdb was renamed so that it is not found (t.rdb is referenced in the manifest.xml).
+
+fail2.oxt: in version 2 the contained t.rdb is corrupted. It is a renamed .txt file which contains some text.
+
+fail3.oxt: in version 2 the contained t.rdb is corrupted. It is a renamed .txt file which does not contain any text.
+
+fail4.oxt: the version 2 references by fail4.update.xml is empty.
+
+info1.oxt: The update information file has length null.
+
+info2.oxt: The update information does not contain xml.
+
+info3.oxt: The update information contain an error: the tag update information contains two opening brackets (<<update-information>) \ No newline at end of file
diff --git a/desktop/test/deployment/update/defect/update/fail1.oxt b/desktop/test/deployment/update/defect/update/fail1.oxt
new file mode 100644
index 0000000000..dbcc7cd73e
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/fail1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/update/fail1.update.xml b/desktop/test/deployment/update/defect/update/fail1.update.xml
new file mode 100644
index 0000000000..87de4a25ae
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/fail1.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.fail1.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/defect/update/fail1.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/defect/update/fail2.oxt b/desktop/test/deployment/update/defect/update/fail2.oxt
new file mode 100644
index 0000000000..6df0c3cf99
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/fail2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/update/fail2.update.xml b/desktop/test/deployment/update/defect/update/fail2.update.xml
new file mode 100644
index 0000000000..254f61f34f
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/fail2.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.fail2.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/defect/update/fail2.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/defect/update/fail3.oxt b/desktop/test/deployment/update/defect/update/fail3.oxt
new file mode 100644
index 0000000000..2d340f4144
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/fail3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/update/fail3.update.xml b/desktop/test/deployment/update/defect/update/fail3.update.xml
new file mode 100644
index 0000000000..ff7f82db08
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/fail3.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.fail3.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/defect/update/fail3.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/defect/update/fail4.oxt b/desktop/test/deployment/update/defect/update/fail4.oxt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/fail4.oxt
diff --git a/desktop/test/deployment/update/defect/update/fail4.update.xml b/desktop/test/deployment/update/defect/update/fail4.update.xml
new file mode 100644
index 0000000000..b321b16bab
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/fail4.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.fail4.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/defect/update/fail4.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/defect/update/info1.update.xml b/desktop/test/deployment/update/defect/update/info1.update.xml
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/info1.update.xml
diff --git a/desktop/test/deployment/update/defect/update/info2.update.xml b/desktop/test/deployment/update/defect/update/info2.update.xml
new file mode 100644
index 0000000000..7e26b0b179
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/info2.update.xml
@@ -0,0 +1 @@
+This is an invalid update information file!!!
diff --git a/desktop/test/deployment/update/defect/update/info3.oxt b/desktop/test/deployment/update/defect/update/info3.oxt
new file mode 100644
index 0000000000..60debac57c
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/info3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/defect/update/info3.update.xml b/desktop/test/deployment/update/defect/update/info3.update.xml
new file mode 100644
index 0000000000..69b54c2595
--- /dev/null
+++ b/desktop/test/deployment/update/defect/update/info3.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.info3.oxt"/>
+ <version value="2.0" />
+ <<update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/defect/update/info3.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/dependencies/publisher_en.html b/desktop/test/deployment/update/dependencies/publisher_en.html
new file mode 100644
index 0000000000..37dbc2b9d6
--- /dev/null
+++ b/desktop/test/deployment/update/dependencies/publisher_en.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>My Extension Company</H1>
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/dependencies/readme.txt b/desktop/test/deployment/update/dependencies/readme.txt
new file mode 100644
index 0000000000..a64f749b12
--- /dev/null
+++ b/desktop/test/deployment/update/dependencies/readme.txt
@@ -0,0 +1,23 @@
+#
+# 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/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+update-dependencies.oxt is an extension that itself has no dependencies, but
+whose update has unsatisfied dependencies (and also uses update-website).
+
+The update information contain also publisher and release notes information,
+which should be displayed in the update dialog.
diff --git a/desktop/test/deployment/update/dependencies/release-notes_en.html b/desktop/test/deployment/update/dependencies/release-notes_en.html
new file mode 100644
index 0000000000..0971f78d14
--- /dev/null
+++ b/desktop/test/deployment/update/dependencies/release-notes_en.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Release Notes</H1>
+</BODY>
+</HTML>
diff --git a/desktop/test/deployment/update/dependencies/update-dependencies.oxt b/desktop/test/deployment/update/dependencies/update-dependencies.oxt
new file mode 100644
index 0000000000..513b25d207
--- /dev/null
+++ b/desktop/test/deployment/update/dependencies/update-dependencies.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/dependencies/update/update-dependencies.update.xml b/desktop/test/deployment/update/dependencies/update/update-dependencies.update.xml
new file mode 100644
index 0000000000..7f9d0606fa
--- /dev/null
+++ b/desktop/test/deployment/update/dependencies/update/update-dependencies.update.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:d="http://openoffice.org/extensions/description/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/dependencies/update-dependencies.oxt"/>
+ <version value="2.0"/>
+ <dependencies>
+ <dependency d:name="&amp; &lt; &gt; &apos; &quot; > ' tab&#x9;. crlf&#xD;&#xA;. em-dash&#x2014;. line-separator&#x2028;. paragraph-separator&#x2029;. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>
+ <dependency d:name="Dependency 1"/>
+ <dependency d:name="Dependency 2"/>
+ <dependency d:name="Dependency 3"/>
+ <dependency d:name="Dependency 4"/>
+ <dependency d:name="Dependency 5"/>
+ <dependency d:name="Dependency 6"/>
+ <dependency d:name="Dependency 7"/>
+ <dependency d:name="Dependency 8"/>
+ <dependency d:name="Dependency 9"/>
+ <dependency d:name="Dependency 10"/>
+ <dependency d:name="Dependency 11"/>
+ <dependency d:name="Dependency 12"/>
+ <dependency d:name="Dependency 13"/>
+ <dependency d:name="Dependency 14"/>
+ <dependency d:name="Dependency 15"/>
+ <dependency d:name="Dependency 16"/>
+ <dependency d:name="Dependency 17"/>
+ <dependency d:name="Dependency 18"/>
+ <dependency d:name="Dependency 19"/>
+ <dependency d:name="Dependency 20"/>
+ <dependency/>
+ <d:OpenOffice.org-minimal-version value="2.1" d:name="OpenOffice.org 2.1"/>
+ </dependencies>
+ <update-website>
+ <src xlink:href="http://nowhere.openoffice.org"/>
+ <src xlink:href="http://nowhere.openoffice.org/2"/>
+ </update-website>
+
+ <publisher>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/dependencies/publisher_en.html" lang="en">My Extension Company</name>
+ </publisher>
+
+ <release-notes>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/dependencies/release-notes_en.html" lang="en" />
+ </release-notes>
+
+</description>
diff --git a/desktop/test/deployment/update/license/lic1.oxt b/desktop/test/deployment/update/license/lic1.oxt
new file mode 100644
index 0000000000..43bfe3b77b
--- /dev/null
+++ b/desktop/test/deployment/update/license/lic1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/lic2.oxt b/desktop/test/deployment/update/license/lic2.oxt
new file mode 100644
index 0000000000..266a45e9a8
--- /dev/null
+++ b/desktop/test/deployment/update/license/lic2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/lic3.oxt b/desktop/test/deployment/update/license/lic3.oxt
new file mode 100644
index 0000000000..3f1b989600
--- /dev/null
+++ b/desktop/test/deployment/update/license/lic3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/readme.txt b/desktop/test/deployment/update/license/readme.txt
new file mode 100644
index 0000000000..6040da04c4
--- /dev/null
+++ b/desktop/test/deployment/update/license/readme.txt
@@ -0,0 +1,9 @@
+The extensions contain a license which is displayed during installation. If the license is displayed during an update can be determined by the attribute
+/description/registration/simple-license/@suppress-on-update
+
+The default value is false, which means that the attribute is not set, then the license is displayed during an update.
+
+lic1.oxt: attribute not set
+lic2.oxt: attribute set to false
+lic3.oxt: attribute set to true
+
diff --git a/desktop/test/deployment/update/license/update/lic1.oxt b/desktop/test/deployment/update/license/update/lic1.oxt
new file mode 100644
index 0000000000..cc91e1ff16
--- /dev/null
+++ b/desktop/test/deployment/update/license/update/lic1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/update/lic1.update.xml b/desktop/test/deployment/update/license/update/lic1.update.xml
new file mode 100644
index 0000000000..2a2761aa9e
--- /dev/null
+++ b/desktop/test/deployment/update/license/update/lic1.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.lic1.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/license/update/lic1.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/license/update/lic2.oxt b/desktop/test/deployment/update/license/update/lic2.oxt
new file mode 100644
index 0000000000..3510007924
--- /dev/null
+++ b/desktop/test/deployment/update/license/update/lic2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/update/lic2.update.xml b/desktop/test/deployment/update/license/update/lic2.update.xml
new file mode 100644
index 0000000000..7dc57ca0ea
--- /dev/null
+++ b/desktop/test/deployment/update/license/update/lic2.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.lic2.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/license/update/lic2.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/license/update/lic3.oxt b/desktop/test/deployment/update/license/update/lic3.oxt
new file mode 100644
index 0000000000..6ac6e0fd0f
--- /dev/null
+++ b/desktop/test/deployment/update/license/update/lic3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/license/update/lic3.update.xml b/desktop/test/deployment/update/license/update/lic3.update.xml
new file mode 100644
index 0000000000..55f5556b6f
--- /dev/null
+++ b/desktop/test/deployment/update/license/update/lic3.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.lic3.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/license/update/lic3.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/platform/all1.oxt b/desktop/test/deployment/update/platform/all1.oxt
new file mode 100644
index 0000000000..ad9662a7c2
--- /dev/null
+++ b/desktop/test/deployment/update/platform/all1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/all2.oxt b/desktop/test/deployment/update/platform/all2.oxt
new file mode 100644
index 0000000000..632d11b429
--- /dev/null
+++ b/desktop/test/deployment/update/platform/all2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/all3.oxt b/desktop/test/deployment/update/platform/all3.oxt
new file mode 100644
index 0000000000..ab781552a5
--- /dev/null
+++ b/desktop/test/deployment/update/platform/all3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/freebsd_x86.oxt b/desktop/test/deployment/update/platform/freebsd_x86.oxt
new file mode 100644
index 0000000000..338f5761de
--- /dev/null
+++ b/desktop/test/deployment/update/platform/freebsd_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/freebsd_x86_64.oxt b/desktop/test/deployment/update/platform/freebsd_x86_64.oxt
new file mode 100644
index 0000000000..39fee6de1a
--- /dev/null
+++ b/desktop/test/deployment/update/platform/freebsd_x86_64.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/invalid1.oxt b/desktop/test/deployment/update/platform/invalid1.oxt
new file mode 100644
index 0000000000..13d709f438
--- /dev/null
+++ b/desktop/test/deployment/update/platform/invalid1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/invalid2.oxt b/desktop/test/deployment/update/platform/invalid2.oxt
new file mode 100644
index 0000000000..f14257191b
--- /dev/null
+++ b/desktop/test/deployment/update/platform/invalid2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/invalid3.oxt b/desktop/test/deployment/update/platform/invalid3.oxt
new file mode 100644
index 0000000000..cadffa4f2a
--- /dev/null
+++ b/desktop/test/deployment/update/platform/invalid3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_arm_eabi.oxt b/desktop/test/deployment/update/platform/linux_arm_eabi.oxt
new file mode 100644
index 0000000000..9c504e841b
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_arm_eabi.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_arm_oabi.oxt b/desktop/test/deployment/update/platform/linux_arm_oabi.oxt
new file mode 100644
index 0000000000..f2c987f645
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_arm_oabi.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_ia64.oxt b/desktop/test/deployment/update/platform/linux_ia64.oxt
new file mode 100644
index 0000000000..f579a18ab9
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_ia64.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_mips64_eb.oxt b/desktop/test/deployment/update/platform/linux_mips64_eb.oxt
new file mode 100644
index 0000000000..5441216940
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_mips64_eb.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_mips64_el.oxt b/desktop/test/deployment/update/platform/linux_mips64_el.oxt
new file mode 100644
index 0000000000..17499092fa
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_mips64_el.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_mips_eb.oxt b/desktop/test/deployment/update/platform/linux_mips_eb.oxt
new file mode 100644
index 0000000000..bf0bd94233
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_mips_eb.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_mips_el.oxt b/desktop/test/deployment/update/platform/linux_mips_el.oxt
new file mode 100644
index 0000000000..6bd5644683
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_mips_el.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_powerpc.oxt b/desktop/test/deployment/update/platform/linux_powerpc.oxt
new file mode 100644
index 0000000000..e301a3fb3a
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_powerpc.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_powerpc64.oxt b/desktop/test/deployment/update/platform/linux_powerpc64.oxt
new file mode 100644
index 0000000000..e5f3ae0639
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_powerpc64.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_s390x.oxt b/desktop/test/deployment/update/platform/linux_s390x.oxt
new file mode 100644
index 0000000000..2ed250833f
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_s390x.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_sparc.oxt b/desktop/test/deployment/update/platform/linux_sparc.oxt
new file mode 100644
index 0000000000..53dfc71e0c
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_sparc.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_x86.oxt b/desktop/test/deployment/update/platform/linux_x86.oxt
new file mode 100644
index 0000000000..8379539cad
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/linux_x86_64.oxt b/desktop/test/deployment/update/platform/linux_x86_64.oxt
new file mode 100644
index 0000000000..0fb1822752
--- /dev/null
+++ b/desktop/test/deployment/update/platform/linux_x86_64.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/macosx_powerpc.oxt b/desktop/test/deployment/update/platform/macosx_powerpc.oxt
new file mode 100644
index 0000000000..7c14634712
--- /dev/null
+++ b/desktop/test/deployment/update/platform/macosx_powerpc.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/macosx_x86.oxt b/desktop/test/deployment/update/platform/macosx_x86.oxt
new file mode 100644
index 0000000000..a20aadfeff
--- /dev/null
+++ b/desktop/test/deployment/update/platform/macosx_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/mul1.oxt b/desktop/test/deployment/update/platform/mul1.oxt
new file mode 100644
index 0000000000..b3b555969b
--- /dev/null
+++ b/desktop/test/deployment/update/platform/mul1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/os2_x86.oxt b/desktop/test/deployment/update/platform/os2_x86.oxt
new file mode 100644
index 0000000000..1c7fd40bef
--- /dev/null
+++ b/desktop/test/deployment/update/platform/os2_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/readme.txt b/desktop/test/deployment/update/platform/readme.txt
new file mode 100644
index 0000000000..222895ad73
--- /dev/null
+++ b/desktop/test/deployment/update/platform/readme.txt
@@ -0,0 +1,50 @@
+Extension which only support one platform
+========================================================
+
+freebsd_x86.oxt: freebsd_x86
+freebsd_x86_86.oxt: freebsd_x86_64
+linux_arm_eabi.oxt: linux_arm_eabi
+linux_arm_oabi.oxt: linux_arm_oabi
+linux_ia64.oxt: linux_ia64
+linux_mips_eb.oxt: linux_mips_eb
+linux_mips64_eb.oxt: linux_mips64_eb
+linux_mips_el.oxt: linux_mips_el
+linux_mips64_el.oxt: linux_mips64_el
+linux_powerpc64.oxt: linux_powerpc64
+linux_powerpc.oxt: linux_powerpc
+linux_s390x.oxt: linux_s390x
+linux_sparc.oxt: linux_sparc
+linux_x86.oxt: linux_x86
+linux_x86_64.oxt: linux_x86_64
+macos_powerpc.oxt: macos_powerpc
+macos_x86.oxt: macos_x86
+solaris_sparc.oxt: solaris_sparc
+solaris_x86.oxt: solaris_x86
+windows_x86.oxt: windows_x86
+os2_x86.oxt: os/2_x86
+
+Extensions which support multiple platforms
+=======================================================
+mul1.oxt: windows_x86, linux_x86, solaris_x86
+
+
+All platforms
+=========================================================
+all1.oxt: all, The <platform> element is missing. Default is "all".
+
+all2.oxt: all, <platform value="all" />
+
+all3.oxt: all, no description.xml
+
+
+
+Invalid platforms
+=========================================================
+The following extensions cannot be installed because the platform element
+is not correct. We assume that no valid platform is defined.
+
+invalid1.oxt: <platform />
+
+invalid2.oxt: <platform value=""/>
+
+invalid3.oxt: <platform value="," />
diff --git a/desktop/test/deployment/update/platform/solaris_sparc.oxt b/desktop/test/deployment/update/platform/solaris_sparc.oxt
new file mode 100644
index 0000000000..a61f81f439
--- /dev/null
+++ b/desktop/test/deployment/update/platform/solaris_sparc.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/solaris_x86.oxt b/desktop/test/deployment/update/platform/solaris_x86.oxt
new file mode 100644
index 0000000000..44d43df691
--- /dev/null
+++ b/desktop/test/deployment/update/platform/solaris_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/platform/windows_x86.oxt b/desktop/test/deployment/update/platform/windows_x86.oxt
new file mode 100644
index 0000000000..c66a9b1418
--- /dev/null
+++ b/desktop/test/deployment/update/platform/windows_x86.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub1.oxt b/desktop/test/deployment/update/publisher/pub1.oxt
new file mode 100644
index 0000000000..c44ee9f3bc
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/pub1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub10.oxt b/desktop/test/deployment/update/publisher/pub10.oxt
new file mode 100644
index 0000000000..1e7410ec1b
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/pub10.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub11.oxt b/desktop/test/deployment/update/publisher/pub11.oxt
new file mode 100644
index 0000000000..ef7fbca5e6
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/pub11.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub2.oxt b/desktop/test/deployment/update/publisher/pub2.oxt
new file mode 100644
index 0000000000..438bcae830
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/pub2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub3.oxt b/desktop/test/deployment/update/publisher/pub3.oxt
new file mode 100644
index 0000000000..62fd69f559
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/pub3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub4.oxt b/desktop/test/deployment/update/publisher/pub4.oxt
new file mode 100644
index 0000000000..4f6224f780
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/pub4.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub5.oxt b/desktop/test/deployment/update/publisher/pub5.oxt
new file mode 100644
index 0000000000..1774e6cd35
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/pub5.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub6.oxt b/desktop/test/deployment/update/publisher/pub6.oxt
new file mode 100644
index 0000000000..791a37f8e7
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/pub6.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub7.oxt b/desktop/test/deployment/update/publisher/pub7.oxt
new file mode 100644
index 0000000000..96e96887d0
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/pub7.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub8.oxt b/desktop/test/deployment/update/publisher/pub8.oxt
new file mode 100644
index 0000000000..dc9f0ce34d
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/pub8.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/pub9.oxt b/desktop/test/deployment/update/publisher/pub9.oxt
new file mode 100644
index 0000000000..5e8ba9ebc1
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/pub9.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/publisher_de-DE-altmark.html b/desktop/test/deployment/update/publisher/publisher_de-DE-altmark.html
new file mode 100644
index 0000000000..c770b914ad
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/publisher_de-DE-altmark.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>My OpenOffice en-DE-altmark</H1>
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/publisher/publisher_de-DE.html b/desktop/test/deployment/update/publisher/publisher_de-DE.html
new file mode 100644
index 0000000000..b06ed7088f
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/publisher_de-DE.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>My OpenOffice de-DE</H1>
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/publisher/publisher_de.html b/desktop/test/deployment/update/publisher/publisher_de.html
new file mode 100644
index 0000000000..4cba9f423d
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/publisher_de.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>My OpenOffice de</H1>
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/publisher/publisher_en-GB.html b/desktop/test/deployment/update/publisher/publisher_en-GB.html
new file mode 100644
index 0000000000..c73cf6219b
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/publisher_en-GB.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>My OpenOffice en-GB</H1>
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/publisher/publisher_en-US-region1.html b/desktop/test/deployment/update/publisher/publisher_en-US-region1.html
new file mode 100644
index 0000000000..68beac7248
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/publisher_en-US-region1.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>My OpenOffice en-US-region1</H1>
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/publisher/publisher_en-US-region2.html b/desktop/test/deployment/update/publisher/publisher_en-US-region2.html
new file mode 100644
index 0000000000..501adb6596
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/publisher_en-US-region2.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>My OpenOffice en-US-region2</H1>
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/publisher/publisher_en-US.html b/desktop/test/deployment/update/publisher/publisher_en-US.html
new file mode 100644
index 0000000000..fd25751503
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/publisher_en-US.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>My OpenOffice en-US</H1>
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/publisher/publisher_en-region3.html b/desktop/test/deployment/update/publisher/publisher_en-region3.html
new file mode 100644
index 0000000000..b9fdc9d657
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/publisher_en-region3.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>My OpenOffice en-region3</H1>
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/publisher/publisher_en.html b/desktop/test/deployment/update/publisher/publisher_en.html
new file mode 100644
index 0000000000..416ab81243
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/publisher_en.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>My OpenOffice en</H1>
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/publisher/readme.txt b/desktop/test/deployment/update/publisher/readme.txt
new file mode 100644
index 0000000000..148dab776c
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/readme.txt
@@ -0,0 +1,212 @@
+--The folder contains extensions which use in the description.xml the following:
+
+-The <publisher> element
+-The <release-notes> element
+
+Both element contain localized child elements.
+
+The following table shows what localized item is used, when the Office the locale
+en-US uses.
+
+
+Localization:
+
+Installed office en-US
+ | publisher | release notes
+=============================================
+pub1.oxt | en-US | en-US
+---------------------------------------------
+pub2.oxt | en-US-region1 | en-US-region1
+---------------------------------------------
+pub3.oxt | en | en
+---------------------------------------------
+pub4.oxt | en-GB | en-GB
+---------------------------------------------
+pub5.oxt | de | de
+
+
+================================================================================
+pub6.oxt
+================================================================================
+like pub1 but without release notes.
+
+
+================================================================================
+pub7.oxt
+================================================================================
+like pub1 but without publisher name.
+
+================================================================================
+pub8.oxt
+================================================================================
+Need not be committed in extensions/www/testarea/desktop.
+
+pub8.oxt is intended for tests with extensions.services.openoffice.org.
+It does not contain <update-information>. That is, the Extension Manager will obtain
+the update information from the repository as feed:
+
+http://updateext.services.openoffice.org/ProductUpdateService/check.Update
+
+pub8.oxt provides <publisher> and <release-notes>. This information should be transferred
+in the update feed and not those entered in the repository.
+
+Test
+----
+Repository:
+
+-Create the new extension in the repository.
+-Provide a company name and a URL to the company website. This setting should be ignored
+ when generating the update feed. Instead the publisher name from the extension is used.
+ Enter "Publisher Title" : some arbitrary company
+ "Publisher URL": any arbitrary URL but not:
+ http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US.html
+
+-Create a new release for the extension. Upload the version 2.0 (update/pub8.oxt).
+ Provide release notes. These release notes should later not be seen when clicking on
+ the release notes link.
+
+
+Office:
+-Install version 1.0 of the extension:
+ desktop/test/deployment/update/publisher/pub8.oxt
+
+-Run the update in the Extension Manager
+
+
+Result:
+The Update Dialog should show the publisher name as provided in the description.xml. For example,
+when lang=en-US was selected: My OpenOffice en-US
+
+A release notes link is displayed with a URL to the release notes as provided in
+the description.xml. For example, when lang=en-US was selected:
+"http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US.html
+
+
+================================================================================
+pub9.oxt
+================================================================================
+Need not be committed in extensions/www/testarea/desktop.
+
+pub9.oxt is intended for tests with extensions.services.openoffice.org.
+It does not contain <update-information>. That is, the Extension Manager will obtain
+the update information from the repository as feed:
+
+http://updateext.services.openoffice.org/ProductUpdateService/check.Update
+
+pub9.oxt provides <publisher>. That means the update feed should
+contain the <publisher> as provided by the extension and the release notes as entered
+in the repository.
+
+Test
+----
+Repository:
+
+-Create the new extension in the repository.
+-Provide a company name and a URL to the company website. This setting should be ignored
+ when generating the update feed. Instead the publisher name from the extension is used.
+ Enter "Publisher Title" : some arbitrary company name
+ "Publisher URL": any arbitrary URL but not:
+ http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US.html
+
+-Create a new release for the extension. Upload the version 2.0 (update/pub9.oxt).
+ Provide release notes. These release notes should later be displayed when clicking on
+ the release notes link.
+
+
+Office:
+-Install version 1.0 of the extension:
+ desktop/test/deployment/update/publisher/pub9.oxt
+
+-Run the update in the Extension Manager
+
+
+Result:
+The Update Dialog should show the publisher name as provided in the description.xml. For example,
+when lang=en-US was selected: My OpenOffice en-US
+
+A release notes link is displayed with a URL to the release notes as provided in the release notes
+field on the edit page for the extension in the repository.
+
+================================================================================
+pub10.oxt
+================================================================================
+Need not be committed in extensions/www/testarea/desktop.
+
+pub10.oxt is intended for tests with extensions.services.openoffice.org.
+It does not contain <update-information>. That is, the Extension Manager will obtain
+the update information from the repository as feed:
+
+http://updateext.services.openoffice.org/ProductUpdateService/check.Update
+
+pub10.oxt provides <release-notes>. That means the update feed should
+contain the <release-notes> as provided by the extension and the publisher name/URLs as entered
+in the repository.
+
+Test
+----
+Repository:
+
+-Create the new extension in the repository.
+-Provide a company name and a URL to the company website. They should then be in the update
+ feed.
+
+-Create a new release for the extension. Upload the version 2.0 (update/pub10.oxt).
+ Provide release notes. These release notes should NOT be displayed when clicking on
+ the release notes link. Instead the release notes provided by pub10.oxt should be displayed.
+
+
+Office:
+-Install version 1.0 of the extension:
+ desktop/test/deployment/update/publisher/pub10.oxt
+
+-Run the update in the Extension Manager
+
+
+Result:
+The Update Dialog should show the publisher name as provided in the repository.
+
+A release notes link is displayed with a URL to the release notes as provided in the
+pub10.oxt. For example, when the locale of the office is en-US then this page will be
+displayed:
+For example,
+when lang=en-US was selected: My OpenOffice en-US
+
+================================================================================
+pub11.oxt
+================================================================================
+Need not be committed in extensions/www/testarea/desktop.
+
+pub11.oxt is intended for tests with extensions.services.openoffice.org.
+It does not contain <update-information>. That is, the Extension Manager will obtain
+the update information from the repository as feed:
+
+http://updateext.services.openoffice.org/ProductUpdateService/check.Update
+
+pub10.oxt neither provides <release-notes> nor <publisher>. That means the update feed should
+contain these data as provided by the user on the repository web site.
+
+Test
+----
+Repository:
+
+-Create the new extension in the repository.
+-Provide a company name and a URL to the company website. They should then be in the update
+ feed.
+
+-Create a new release for the extension. Upload the version 2.0 (update/pub11.oxt).
+ Provide release notes. These release notes should be displayed when clicking on
+ the release notes link.
+
+
+Office:
+-Install version 1.0 of the extension:
+ desktop/test/deployment/update/publisher/pub11.oxt
+
+-Run the update in the Extension Manager
+
+
+Result:
+The Update Dialog should show the publisher name as provided in the repository.
+
+A release notes link is displayed which leads to the release notes kept in the repository.
+
diff --git a/desktop/test/deployment/update/publisher/release-notes_de-DE-altmark.html b/desktop/test/deployment/update/publisher/release-notes_de-DE-altmark.html
new file mode 100644
index 0000000000..81b38a9f5b
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/release-notes_de-DE-altmark.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Release Notes de-DE-altmark</H1>
+</BODY>
+</HTML>
diff --git a/desktop/test/deployment/update/publisher/release-notes_de-DE.html b/desktop/test/deployment/update/publisher/release-notes_de-DE.html
new file mode 100644
index 0000000000..f8f0121f02
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/release-notes_de-DE.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Release Notes de-DE</H1>
+</BODY>
+</HTML>
diff --git a/desktop/test/deployment/update/publisher/release-notes_de.html b/desktop/test/deployment/update/publisher/release-notes_de.html
new file mode 100644
index 0000000000..a9e1dc3647
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/release-notes_de.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Release Notes de</H1>
+</BODY>
+</HTML>
diff --git a/desktop/test/deployment/update/publisher/release-notes_en-GB.html b/desktop/test/deployment/update/publisher/release-notes_en-GB.html
new file mode 100644
index 0000000000..ca72ec1b9c
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/release-notes_en-GB.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Release Notes en-GB</H1>
+</BODY>
+</HTML>
diff --git a/desktop/test/deployment/update/publisher/release-notes_en-US-region1.html b/desktop/test/deployment/update/publisher/release-notes_en-US-region1.html
new file mode 100644
index 0000000000..0e6f99ce4c
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/release-notes_en-US-region1.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Release Notes en-US-region1</H1>
+</BODY>
+</HTML>
diff --git a/desktop/test/deployment/update/publisher/release-notes_en-US-region2.html b/desktop/test/deployment/update/publisher/release-notes_en-US-region2.html
new file mode 100644
index 0000000000..597bca0ebe
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/release-notes_en-US-region2.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Release Notes en-US-region2</H1>
+</BODY>
+</HTML>
diff --git a/desktop/test/deployment/update/publisher/release-notes_en-US.html b/desktop/test/deployment/update/publisher/release-notes_en-US.html
new file mode 100644
index 0000000000..7f9d73e338
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/release-notes_en-US.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Release Notes en-US</H1>
+</BODY>
+</HTML>
diff --git a/desktop/test/deployment/update/publisher/release-notes_en-region3.html b/desktop/test/deployment/update/publisher/release-notes_en-region3.html
new file mode 100644
index 0000000000..5d62c7bcb4
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/release-notes_en-region3.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Release Notes en-region3</H1>
+</BODY>
+</HTML>
diff --git a/desktop/test/deployment/update/publisher/release-notes_en.html b/desktop/test/deployment/update/publisher/release-notes_en.html
new file mode 100644
index 0000000000..d02e4f3330
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/release-notes_en.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Release Notes en</H1>
+</BODY>
+</HTML>
diff --git a/desktop/test/deployment/update/publisher/update/pub1.oxt b/desktop/test/deployment/update/publisher/update/pub1.oxt
new file mode 100644
index 0000000000..cd04a58d55
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub1.update.xml b/desktop/test/deployment/update/publisher/update/pub1.update.xml
new file mode 100644
index 0000000000..14a35d7982
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub1.update.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/publisher/pub1"/>
+
+ <publisher>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de.html" lang="de">My OpenOffice de</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en.html" lang="en">My OpenOffice en</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE.html" lang="de-DE">My OpenOffice de-DE</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE-altmark.html" lang="de-DE-altmark">My OpenOffice de-DE-altmark</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-GB.html" lang="en-GB">My OpenOffice en-GB</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US.html" lang="en-US">My OpenOffice en-US</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US-region1.html" lang="en-US-region1">My OpenOffice en-US-region1</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US-region2.html" lang="en-US-region2">My OpenOffice en-US-region2</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-region3.html" lang="en-region3">My OpenOffice en-region3</name>
+ </publisher>
+
+ <release-notes>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en.html" lang="en" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE-altmark.html" lang="de-DE-altmark" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-GB.html" lang="en-GB" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-US.html" lang="en-US" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-US-region1.html" lang="en-US-region1" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-US-region2.html" lang="en-US-region2" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-region3.html" lang="en-region3" />
+ </release-notes>
+
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/update/pub1.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/publisher/update/pub10.oxt b/desktop/test/deployment/update/publisher/update/pub10.oxt
new file mode 100644
index 0000000000..501a843381
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub10.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub11.oxt b/desktop/test/deployment/update/publisher/update/pub11.oxt
new file mode 100644
index 0000000000..692c0401f4
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub11.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub2.oxt b/desktop/test/deployment/update/publisher/update/pub2.oxt
new file mode 100644
index 0000000000..2a0bd6c21f
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub2.update.xml b/desktop/test/deployment/update/publisher/update/pub2.update.xml
new file mode 100644
index 0000000000..675ce484d4
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub2.update.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/publisher/pub2"/>
+
+ <publisher>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de.html" lang="de">My OpenOffice de</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en.html" lang="en">My OpenOffice en</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE.html" lang="de-DE">My OpenOffice de-DE</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE-altmark.html" lang="de-DE-altmark">My OpenOffice de-DE-altmark</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-GB.html" lang="en-GB">My OpenOffice en-GB</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US-region1.html" lang="en-US-region1">My OpenOffice en-US-region1</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US-region2.html" lang="en-US-region2">My OpenOffice en-US-region2</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-region3.html" lang="en-region3">My OpenOffice en-region3</name>
+ </publisher>
+
+ <release-notes>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en.html" lang="en" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE-altmark.html" lang="de-DE-altmark" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-GB.html" lang="en-GB" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-US-region1.html" lang="en-US-region1" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-US-region2.html" lang="en-US-region2" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-region3.html" lang="en-region3" />
+ </release-notes>
+
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/update/pub2.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/publisher/update/pub3.oxt b/desktop/test/deployment/update/publisher/update/pub3.oxt
new file mode 100644
index 0000000000..60675fc4d2
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub3.update.xml b/desktop/test/deployment/update/publisher/update/pub3.update.xml
new file mode 100644
index 0000000000..13199e3758
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub3.update.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/publisher/pub3"/>
+
+ <publisher>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de.html" lang="de">My OpenOffice de</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en.html" lang="en">My OpenOffice en</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE.html" lang="de-DE">My OpenOffice de-DE</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE-altmark.html" lang="de-DE-altmark">My OpenOffice de-DE-altmark</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-GB.html" lang="en-GB">My OpenOffice en-GB</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-region3.html" lang="en-region3">My OpenOffice en-region3</name>
+ </publisher>
+
+ <release-notes>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en.html" lang="en" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE-altmark.html" lang="de-DE-altmark" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-GB.html" lang="en-GB" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-region3.html" lang="en-region3" />
+ </release-notes>
+
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/update/pub3.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/publisher/update/pub4.oxt b/desktop/test/deployment/update/publisher/update/pub4.oxt
new file mode 100644
index 0000000000..19f7b7991b
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub4.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub4.update.xml b/desktop/test/deployment/update/publisher/update/pub4.update.xml
new file mode 100644
index 0000000000..800b688218
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub4.update.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/publisher/pub4"/>
+
+ <publisher>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de.html" lang="de">My OpenOffice de</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE.html" lang="de-DE">My OpenOffice de-DE</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE-altmark.html" lang="de-DE-altmark">My OpenOffice de-DE-altmark</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-GB.html" lang="en-GB">My OpenOffice en-GB</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-region3.html" lang="en-region3">My OpenOffice en-region3</name>
+ </publisher>
+
+ <release-notes>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE-altmark.html" lang="de-DE-altmark" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-GB.html" lang="en-GB" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-region3.html" lang="en-region3" />
+ </release-notes>
+
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/update/pub4.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/publisher/update/pub5.oxt b/desktop/test/deployment/update/publisher/update/pub5.oxt
new file mode 100644
index 0000000000..afc632d570
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub5.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub5.update.xml b/desktop/test/deployment/update/publisher/update/pub5.update.xml
new file mode 100644
index 0000000000..70bc7194f1
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub5.update.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/publisher/pub5"/>
+
+ <publisher>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de.html" lang="de">My OpenOffice de</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE.html" lang="de-DE">My OpenOffice de-DE</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE-altmark.html" lang="de-DE-altmark">My OpenOffice de-DE-altmark</name>
+ </publisher>
+
+ <release-notes>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE-altmark.html" lang="de-DE-altmark" />
+ </release-notes>
+
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/update/pub5.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/publisher/update/pub6.oxt b/desktop/test/deployment/update/publisher/update/pub6.oxt
new file mode 100644
index 0000000000..a68b445b8a
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub6.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub6.update.xml b/desktop/test/deployment/update/publisher/update/pub6.update.xml
new file mode 100644
index 0000000000..69ac58b289
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub6.update.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/publisher/pub6"/>
+
+ <publisher>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de.html" lang="de">My OpenOffice de</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en.html" lang="en">My OpenOffice en</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE.html" lang="de-DE">My OpenOffice de-DE</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE-altmark.html" lang="de-DE-altmark">My OpenOffice de-DE-altmark</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-GB.html" lang="en-GB">My OpenOffice en-GB</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US.html" lang="en-US">My OpenOffice en-US</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US-region1.html" lang="en-US-region1">My OpenOffice en-US-region1</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US-region2.html" lang="en-US-region2">My OpenOffice en-US-region2</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-region3.html" lang="en-region3">My OpenOffice en-region3</name>
+ </publisher>
+
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/update/pub6.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/publisher/update/pub7.oxt b/desktop/test/deployment/update/publisher/update/pub7.oxt
new file mode 100644
index 0000000000..1b4bee0442
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub7.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub7.update.xml b/desktop/test/deployment/update/publisher/update/pub7.update.xml
new file mode 100644
index 0000000000..7ca456e954
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub7.update.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/publisher/pub7"/>
+
+ <release-notes>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en.html" lang="en" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE-altmark.html" lang="de-DE-altmark" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-GB.html" lang="en-GB" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-US.html" lang="en-US" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-US-region1.html" lang="en-US-region1" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-US-region2.html" lang="en-US-region2" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-region3.html" lang="en-region3" />
+ </release-notes>
+
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/update/pub7.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/publisher/update/pub8.oxt b/desktop/test/deployment/update/publisher/update/pub8.oxt
new file mode 100644
index 0000000000..5688ab9d24
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub8.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/publisher/update/pub9.oxt b/desktop/test/deployment/update/publisher/update/pub9.oxt
new file mode 100644
index 0000000000..752cfbbcf0
--- /dev/null
+++ b/desktop/test/deployment/update/publisher/update/pub9.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/readme.txt b/desktop/test/deployment/update/readme.txt
new file mode 100644
index 0000000000..fa17783089
--- /dev/null
+++ b/desktop/test/deployment/update/readme.txt
@@ -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/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+The extensions in the subdirectories of the update folder are used for
+testing the online update feature of extensions. The folder such as
+simple,
+license,
+defect, etc. contain extensions which can be installed in OOo. The
+corresponding update information file and the update are located on
+the extensions.openoffice.org website (cvs: extensions/www/testarea). For example:
+
+desktop/test/deployment/update/simple/plain1.oxt
+
+is version 1 of this extension and it references
+
+http://extensions.openoffice.org/testarea/desktop/simple/update/plain1.update.xml
+
+which in turn references version 2 at
+
+http://extensions.openoffice.org/testarea/desktop/simple/update/plain1.oxt
+
+
+To have all in one place the update information file and the update are also contained
+in the desktop project. They are in the update subfolder of the different test folders.
+For example
+
+.../update/simple/update
+.../update/license/update
+.../update/updatefeed/update
+
+
+The different test folders for the update are also committed in project extensions/www
+so that the files can be obtain via a URL. The structure and the contents is about the
+same as the content
+of desktop/test/deployment/update
+For example in
+
+extensions/www/testarea/desktop
+
+are the subfolder defect, simple, updatefeed, wrong_url, etc.
+they contain the extensions which are installed directly by the Extension Manager.
+These folders contain also the update subfolder which contains the update information
+and the actual updates.
diff --git a/desktop/test/deployment/update/simple/plain1.oxt b/desktop/test/deployment/update/simple/plain1.oxt
new file mode 100644
index 0000000000..6256f99d5e
--- /dev/null
+++ b/desktop/test/deployment/update/simple/plain1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/plain2.oxt b/desktop/test/deployment/update/simple/plain2.oxt
new file mode 100644
index 0000000000..03249c2777
--- /dev/null
+++ b/desktop/test/deployment/update/simple/plain2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/plain3.oxt b/desktop/test/deployment/update/simple/plain3.oxt
new file mode 100644
index 0000000000..64838932d1
--- /dev/null
+++ b/desktop/test/deployment/update/simple/plain3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/readme.txt b/desktop/test/deployment/update/simple/readme.txt
new file mode 100644
index 0000000000..34ad6bedab
--- /dev/null
+++ b/desktop/test/deployment/update/simple/readme.txt
@@ -0,0 +1,31 @@
+The folder contains only simple extension. That is, they only contain
+- META-INF
+-t.rdb
+-description.xml
+
+The description.xml contains a version, a display name, and one URL to the update data
+
+For example:
+
+
+<?xml version="1.0" encoding="UTF-8"?>
+<description xmlns="http://openoffice.org/extensions/description/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="1.0" />
+
+ <display-name>
+ <name lang="de">plain1 de</name>
+ </display-name>
+
+ <update-information>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/simple/plain1.update.xml" />
+ </update-information>
+</description>
+
+There is only one language as display name available, which will therefore always be displayed.
+
+The update information which is referenced in the update-information and the update is committed in the extensions/www project. To modify them get the project:
+
+cvs co extensions/wwww
+
+the files can be found under extensions/www/testarea/desktop
diff --git a/desktop/test/deployment/update/simple/update/plain1.oxt b/desktop/test/deployment/update/simple/update/plain1.oxt
new file mode 100644
index 0000000000..d73362e873
--- /dev/null
+++ b/desktop/test/deployment/update/simple/update/plain1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/update/plain1.update.xml b/desktop/test/deployment/update/simple/update/plain1.update.xml
new file mode 100644
index 0000000000..741fcf7746
--- /dev/null
+++ b/desktop/test/deployment/update/simple/update/plain1.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.plain1.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/simple/update/plain1.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/simple/update/plain2.oxt b/desktop/test/deployment/update/simple/update/plain2.oxt
new file mode 100644
index 0000000000..3dc02aa97a
--- /dev/null
+++ b/desktop/test/deployment/update/simple/update/plain2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/update/plain2.update.xml b/desktop/test/deployment/update/simple/update/plain2.update.xml
new file mode 100644
index 0000000000..883a82e624
--- /dev/null
+++ b/desktop/test/deployment/update/simple/update/plain2.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.plain2.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/simple/update/plain2.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/simple/update/plain3.oxt b/desktop/test/deployment/update/simple/update/plain3.oxt
new file mode 100644
index 0000000000..575152403b
--- /dev/null
+++ b/desktop/test/deployment/update/simple/update/plain3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/simple/update/plain3.update.xml b/desktop/test/deployment/update/simple/update/plain3.update.xml
new file mode 100644
index 0000000000..e6b3f383ae
--- /dev/null
+++ b/desktop/test/deployment/update/simple/update/plain3.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.plain3.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/simple/update/plain3.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/updatefeed/feed1.oxt b/desktop/test/deployment/update/updatefeed/feed1.oxt
new file mode 100644
index 0000000000..b1b11eccea
--- /dev/null
+++ b/desktop/test/deployment/update/updatefeed/feed1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/updatefeed/feed2.oxt b/desktop/test/deployment/update/updatefeed/feed2.oxt
new file mode 100644
index 0000000000..47dca1676c
--- /dev/null
+++ b/desktop/test/deployment/update/updatefeed/feed2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/updatefeed/update/feed1.oxt b/desktop/test/deployment/update/updatefeed/update/feed1.oxt
new file mode 100644
index 0000000000..82bb9665ae
--- /dev/null
+++ b/desktop/test/deployment/update/updatefeed/update/feed1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/updatefeed/update/feed1.update.xml b/desktop/test/deployment/update/updatefeed/update/feed1.update.xml
new file mode 100644
index 0000000000..90a7c23c95
--- /dev/null
+++ b/desktop/test/deployment/update/updatefeed/update/feed1.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.feed1.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/updatefeed/update/feed1.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/updatefeed/update/feed1.xml b/desktop/test/deployment/update/updatefeed/update/feed1.xml
new file mode 100644
index 0000000000..ed53012a4b
--- /dev/null
+++ b/desktop/test/deployment/update/updatefeed/update/feed1.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
+
+ <title>OpenOffice.org Update Feed</title>
+ <link rel="alternate" type="text/html" href="http://update.services.openoffice.org/ooo/snapshot.html"/>
+ <updated>2006-11-06T18:30:02Z</updated>
+ <author>
+ <name>The OpenOffice.org Project</name>
+ <uri>http://openoffice.org</uri>
+ <email>updatefeed@openoffice.org</email>
+ </author>
+ <id>urn:uuid:a4ccd383-1dd1-11b2-a95c-0003ba566e9d</id>
+ <entry>
+ <title>feed1.oxt version 2.0 available</title>
+ <link rel="alternate" type="text/html"
+ href="http://extensions.openoffice.org"/>
+ <id>urn:uuid:a4ccd383-1dd1-11b2-a95c-0003ba566e9f</id>
+ <category term="org.openoffice.legacy.feed1.oxt" label="feed1.oxt" />
+ <updated>2006-11-06T18:30:02Z</updated>
+ <summary>Click here to go to the download page.</summary>
+ <content type="application/xml" src="http://extensions.openoffice.org/testarea/desktop/updatefeed/update/feed1.update.xml" />
+ </entry>
+ <entry>
+ <title>feed2.oxt version 2.0 available</title>
+ <link rel="alternate" type="text/html"
+ href="http://extensions.openoffice.org"/>
+ <id>urn:uuid:a4ccd383-1dd1-11b2-a95c-0003ba566eaf</id>
+ <category term="org.openoffice.legacy.feed2.oxt" label="feed2.oxt" />
+ <updated>2006-11-06T18:30:02Z</updated>
+ <summary>Click here to go to the download page.</summary>
+ <content type="application/xml" src="http://extensions.openoffice.org/testarea/desktop/updatefeed/update/feed2.update.xml" />
+ </entry>
+</feed>
diff --git a/desktop/test/deployment/update/updatefeed/update/feed2.oxt b/desktop/test/deployment/update/updatefeed/update/feed2.oxt
new file mode 100644
index 0000000000..9c867ae4a8
--- /dev/null
+++ b/desktop/test/deployment/update/updatefeed/update/feed2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/updatefeed/update/feed2.update.xml b/desktop/test/deployment/update/updatefeed/update/feed2.update.xml
new file mode 100644
index 0000000000..e37c692b0b
--- /dev/null
+++ b/desktop/test/deployment/update/updatefeed/update/feed2.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.feed2.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/updatefeed/update/feed2.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/updateinfocreation/build/MANIFEST.MF b/desktop/test/deployment/update/updateinfocreation/build/MANIFEST.MF
new file mode 100644
index 0000000000..09e2f42ca0
--- /dev/null
+++ b/desktop/test/deployment/update/updateinfocreation/build/MANIFEST.MF
@@ -0,0 +1,2 @@
+RegistrationClassName: com.sun.star.comp.smoketest.TestExtension
+
diff --git a/desktop/test/deployment/update/updateinfocreation/build/TestExtension.idl b/desktop/test/deployment/update/updateinfocreation/build/TestExtension.idl
new file mode 100644
index 0000000000..bd5a1ac5f8
--- /dev/null
+++ b/desktop/test/deployment/update/updateinfocreation/build/TestExtension.idl
@@ -0,0 +1,27 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+
+module com { module sun { module star { module comp { module smoketest {
+ // example service, XServiceInfo is implemented here for demonstration
+ // issues. XServiceInfo must be implemented by all components.
+ service TestExtension: css::lang::XServiceInfo;
+};};};};};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/test/deployment/update/updateinfocreation/build/TestExtension.java b/desktop/test/deployment/update/updateinfocreation/build/TestExtension.java
new file mode 100644
index 0000000000..8d48a30c81
--- /dev/null
+++ b/desktop/test/deployment/update/updateinfocreation/build/TestExtension.java
@@ -0,0 +1,156 @@
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package com.sun.star.comp.smoketest;
+
+import com.sun.star.lib.uno.helper.Factory;
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.registry.XRegistryKey;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.lang.XTypeProvider;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.uno.Type;
+
+/** This class capsulates the class, that implements the minimal component, a
+ * factory for creating the service (<CODE>__getComponentFactory</CODE>) and a
+ * method, that writes the information into the given registry key
+ * (<CODE>__writeRegistryServiceInfo</CODE>).
+ */
+public class TestExtension {
+ /** This class implements the component. At least the interfaces XServiceInfo,
+ * XTypeProvider, and XInitialization should be provided by the service.
+ */
+ public static class _TestExtension extends WeakBase
+ implements XServiceInfo {
+ /** The service name, that must be used to get an instance of this service.
+ */
+ private static final String __serviceName =
+ "com.sun.star.comp.smoketest.TestExtension";
+
+ /** The initial component contextr, that gives access to
+ * the service manager, supported singletons, ...
+ * It's often later used
+ */
+ private XComponentContext m_cmpCtx;
+
+ /** The service manager, that gives access to all registered services.
+ * It's often later used
+ */
+ private XMultiComponentFactory m_xMCF;
+
+ /** The constructor of the inner class has a XMultiServiceFactory parameter.
+ * @param xmultiservicefactoryInitialization A special service factory
+ * could be introduced while initializing.
+ */
+ public _TestExtension(XComponentContext xCompContext) {
+ try {
+ m_cmpCtx = xCompContext;
+ m_xMCF = m_cmpCtx.getServiceManager();
+ }
+ catch( Exception e ) {
+ e.printStackTrace();
+ }
+ }
+
+ /** This method returns an array of all supported service names.
+ * @return Array of supported service names.
+ */
+ public String[] getSupportedServiceNames() {
+ return getServiceNames();
+ }
+
+ /** This method is a simple helper function to used in the
+ * static component initialisation functions as well as in
+ * getSupportedServiceNames.
+ */
+ public static String[] getServiceNames() {
+ String[] sSupportedServiceNames = { __serviceName };
+ return sSupportedServiceNames;
+ }
+
+ /** This method returns true, if the given service will be
+ * supported by the component.
+ * @param sServiceName Service name.
+ * @return True, if the given service name will be supported.
+ */
+ public boolean supportsService( String sServiceName ) {
+ return sServiceName.equals( __serviceName );
+ }
+
+ /** Return the class name of the component.
+ * @return Class name of the component.
+ */
+ public String getImplementationName() {
+ return _TestExtension.class.getName();
+ }
+ }
+
+
+ /**
+ * Gives a factory for creating the service.
+ * This method is called by the <code>JavaLoader</code>
+ * <p>
+ * @return returns a <code>XSingleComponentFactory</code> for creating
+ * the component
+ * @param sImplName the name of the implementation for which a
+ * service is desired
+ * @see com.sun.star.comp.loader.JavaLoader
+ */
+ public static XSingleComponentFactory __getComponentFactory(String sImplName)
+ {
+ XSingleComponentFactory xFactory = null;
+
+ if ( sImplName.equals( _TestExtension.class.getName() ) )
+ xFactory = Factory.createComponentFactory(_TestExtension.class,
+ _TestExtension.getServiceNames());
+
+ return xFactory;
+ }
+
+ /**
+ * Writes the service information into the given registry key.
+ * This method is called by the <code>JavaLoader</code>
+ * <p>
+ * @return returns true if the operation succeeded
+ * @param regKey the registryKey
+ * @see com.sun.star.comp.loader.JavaLoader
+ */
+ public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
+ return Factory.writeRegistryServiceInfo(_TestExtension.class.getName(),
+ _TestExtension.getServiceNames(),
+ regKey);
+ }
+ /** This method is a member of the interface for initializing an object
+ * directly after its creation.
+ * @param object This array of arbitrary objects will be passed to the
+ * component after its creation.
+ * @throws Exception Every exception will not be handled, but will be
+ * passed to the caller.
+ */
+ public void initialize( Object[] object )
+ throws com.sun.star.uno.Exception {
+ /* The component describes what arguments are expected and in which
+ * order! At this point you can read the objects and initialize
+ * your component using these objects.
+ */
+ }
+
+}
diff --git a/desktop/test/deployment/update/updateinfocreation/build/description.xml b/desktop/test/deployment/update/updateinfocreation/build/description.xml
new file mode 100644
index 0000000000..283fb1cca8
--- /dev/null
+++ b/desktop/test/deployment/update/updateinfocreation/build/description.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/description/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:d="http://openoffice.org/extensions/description/2006" >
+ <identifier value="org.openoffice.extensions.testarea.desktop.updateinfo"/>
+ <version value="2.0" />
+ <dependencies >
+ <OpenOffice.org-minimal-version value="2.1" d:name="OpenOffice.org 2.1"/>
+ </dependencies>
+ <update-information>
+ <src xlink:href="http://update.services.openoffice.org/ProductUpdateService/check.Update?product=extension&amp;extensionid=org.openoffice.extensions.testarea.desktop.updateinfo&amp;refresh=true"/>
+ </update-information>
+</description>
diff --git a/desktop/test/deployment/update/updateinfocreation/build/makefile.mk b/desktop/test/deployment/update/updateinfocreation/build/makefile.mk
new file mode 100644
index 0000000000..1cb59985e8
--- /dev/null
+++ b/desktop/test/deployment/update/updateinfocreation/build/makefile.mk
@@ -0,0 +1,80 @@
+#
+# 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/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+PRJ = ..$/..$/..$/..$/..
+PRJNAME = updateinfo
+PACKAGE = com$/sun$/star$/comp$/smoketest
+TARGET = com_sun_star_comp_smoketest
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+JARFILES = ridl.jar jurt.jar unoil.jar juh.jar
+
+
+JARTARGET = TestExtension.jar
+JARCOMPRESS = TRUE
+CUSTOMMANIFESTFILE = MANIFEST.MF
+
+ZIP1TARGET=updateinfo
+ZIP1LIST=*
+ZIPFLAGS=-r
+ZIP1DIR=$(MISC)$/$(TARGET)
+ZIP1EXT=.oxt
+
+EXTUPDATEINFO_NAME=org.openoffice.extensions.testarea.desktop.updateinfo.update.xml
+EXTUPDATEINFO_SOURCE=description.xml
+EXTUPDATEINFO_URLS = http://extensions.openoffice.org/testarea/desktop/updateinfocreation/update/updateinfo.oxt
+# --- Files --------------------------------------------------------
+
+COPY_OXT_MANIFEST:= $(MISC)$/$(TARGET)$/META-INF$/manifest.xml
+JAVAFILES = TestExtension.java
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+$(JARTARGETN) : $(MISC)$/$(TARGET).javamaker.done
+
+$(JAVACLASSFILES) : $(MISC)$/$(TARGET).javamaker.done
+
+$(MISC)$/$(TARGET).javamaker.done: $(BIN)$/TestExtension.rdb
+ $(JAVAMAKER) -O$(CLASSDIR) -BUCR -nD -X$(SOLARBINDIR)/types.rdb $<
+ $(TOUCH) $@
+
+$(BIN)$/TestExtension.rdb: TestExtension.idl
+ $(IDLC) -O$(MISC) -I$(SOLARIDLDIR) -cid -we $<
+ +-$(RM) $@
+ $(REGMERGE) $@ /UCR $(MISC)$/TestExtension.urd
+
+$(MISC)$/$(ZIP1TARGET).createdir :
+ +$(MKDIRHIER) $(MISC)$/$(TARGET)$/META-INF >& $(NULLDEV) && $(TOUCH) $@
+
+$(MISC)$/$(TARGET)_resort : manifest.xml $(JARTARGETN) $(MISC)$/$(ZIP1TARGET).createdir $(BIN)$/TestExtension.rdb description.xml
+ $(GNUCOPY) -u manifest.xml $(MISC)$/$(TARGET)$/META-INF$/manifest.xml
+ $(GNUCOPY) -u $(JARTARGETN) $(MISC)$/$(TARGET)$/$(JARTARGET)
+ $(GNUCOPY) -u $(BIN)$/TestExtension.rdb $(MISC)$/$(TARGET)$/TestExtension.rdb
+ $(GNUCOPY) -u description.xml $(MISC)$/$(TARGET)$/description.xml
+ $(TOUCH) $@
+
+.IF "$(ZIP1TARGETN)"!=""
+$(ZIP1TARGETN) : $(MISC)$/$(TARGET)_resort $(MISC)$/$(ZIP1TARGET).createdir
+
+.ENDIF # "$(ZIP1TARGETN)"!=""
+
diff --git a/desktop/test/deployment/update/updateinfocreation/build/manifest.xml b/desktop/test/deployment/update/updateinfocreation/build/manifest.xml
new file mode 100644
index 0000000000..fcedabf96b
--- /dev/null
+++ b/desktop/test/deployment/update/updateinfocreation/build/manifest.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest">
+ <manifest:file-entry manifest:full-path="TestExtension.jar" manifest:media-type="application/vnd.sun.star.uno-component;type=Java"/>
+ <manifest:file-entry manifest:full-path="TestExtension.rdb" manifest:media-type="application/vnd.sun.star.uno-typelibrary;type=RDB"/>
+</manifest:manifest>
diff --git a/desktop/test/deployment/update/updateinfocreation/readme.txt b/desktop/test/deployment/update/updateinfocreation/readme.txt
new file mode 100644
index 0000000000..20819bb70a
--- /dev/null
+++ b/desktop/test/deployment/update/updateinfocreation/readme.txt
@@ -0,0 +1,38 @@
+The extension build in this test uses an update information which is obtained
+through a http get request. That is the URL does not reference an update
+information file. Instead it invokes code on a webserver which returns the
+update information. The URL used in this example is:
+
+http://update.services.openoffice.org/ProductUpdateService/check.Update?product=extension&amp;extensionid=org.openoffice.extensions.testarea.desktop.updateinfo&amp;refresh=true
+
+The updateinfo.oxt in this directory has the version 1.0 and in the sub-directory "update is the version 2 of this extension. Version 1.0 is also available here
+/extensions/www/testarea/desktop/updateinfocreation/updateinfo.oxt
+and version 2.0 here
+/extensions/www/testarea/desktop/updateinfocreation/update/updateinfo.oxt
+
+Therefore they can be accessed through
+
+http://extensions.openoffice.org/testarea/desktop/updateinfocreation/updateinfo.oxt
+and
+http://extensions.openoffice.org/testarea/desktop/updateinfocreation/update/updateinfo.oxt
+
+The latter location (version 2.0) will also be referenced by the update information
+which are returned by the webserver.
+
+The build sub-directory contains the code of the extension (version 2.0) and can
+be build by calling dmake in this directory. The makefile uses the special macros:
+
+EXTUPDATEINFO_NAME=org.openoffice.extensions.testarea.desktop.updateinfo.update.xml
+EXTUPDATEINFO_SOURCE=description.xml
+EXTUPDATEINFO_URLS = http://extensions.openoffice.org/testarea/desktop/updateinfocreation/update/updateinfo.oxt
+
+This causes the generation of the update information file. This file could be
+directly references by the URL in the <update-information> of the description.xml.
+See also the Wiki entry at:
+http://wiki.openoffice.org/wiki/Creating_update_information_for_extensions
+This generated update information file can then be used by the webserver, when it
+sends back the requested update information. The update information file will be
+generated in the misc directory of the output directory.
+
+The update information file needs to be copied into common.pro/pus.mxyz directory.
+The project mwsfinish will process the files in the pus directory.
diff --git a/desktop/test/deployment/update/updateinfocreation/update/updateinfo.oxt b/desktop/test/deployment/update/updateinfocreation/update/updateinfo.oxt
new file mode 100644
index 0000000000..52ddd3158e
--- /dev/null
+++ b/desktop/test/deployment/update/updateinfocreation/update/updateinfo.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/updateinfocreation/updateinfo.oxt b/desktop/test/deployment/update/updateinfocreation/updateinfo.oxt
new file mode 100644
index 0000000000..43ac7003bc
--- /dev/null
+++ b/desktop/test/deployment/update/updateinfocreation/updateinfo.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/readme.txt b/desktop/test/deployment/update/website_update/readme.txt
new file mode 100644
index 0000000000..b888bba703
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/readme.txt
@@ -0,0 +1,133 @@
+The folder contains extensions which need to be updated through a web site.
+The "Updates dialog" of the Extension Manager will mark the updates for these
+extensions as "browser based update". The Extension Manager will open a browser
+for each of the extensions and navigate to the respective website.
+
+================================================================================
+web1.oxt - web5.oxt:
+================================================================================
+They contain <update-information>. That is they reference directly the respective
+webX.update.xml (for example, web1.update.xml) files which are available at
+http://extensions.openoffice.org/testarea/desktop/website_update/update/...
+For example:
+http://extensions.openoffice.org/testarea/desktop/website_update/update/web2.update.xml
+
+The update information contain multiple URLs to "localized" web sites. Each URL is
+assigned to a particular local. For example:
+
+<src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de.html" lang="de"/>
+
+The Extension Manager will choose the URLs where the lang attribute matches most
+closely the locale of the office.
+
+The following table shows what localized web site is used, when the office uses the locale
+en-US. The web page will display the locale used. See update/web1_de.html, etc.
+
+
+Localization:
+
+Installed office en-US
+ | publisher | release notes
+=============================================
+web1.oxt | en-US | en-US
+---------------------------------------------
+web2.oxt | en-US-region1 | en-US-region1
+---------------------------------------------
+web3.oxt | en | en
+---------------------------------------------
+web4.oxt | en-GB | en-GB
+---------------------------------------------
+web5.oxt | de | de
+
+
+================================================================================
+web6.oxt
+================================================================================
+Need not be committed in extensions/www/testarea/desktop.
+
+web6.oxt is intended for tests with extensions.services.openoffice.org.
+It does not contain <update-information>. That is, the Extension Manager will obtain
+the update information from the repository as feed:
+
+http://updateext.services.openoffice.org/ProductUpdateService/check.Update
+
+Test
+----
+Repository:
+
+-Create the new extension in the repository.
+-Provide a company name and a URL to the company website. In our case this should be
+ http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-US.html
+
+-Create a new release for the extension. Upload the description.xml of version 2.0
+(update/web6/description.xml). Provide a download URL for the web site (field
+ "Download from page / Open follow up page URL", which should be
+ http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-US.html
+ Provide release notes.
+
+
+Office:
+-Install version 1.0 of the extension:
+ desktop/test/deployment/update/website_update/web6.oxt
+
+-Run the update in the Extension Manager
+
+
+Result:
+The Update Dialog should show the publisher name as provided in "Provider URL" field
+of the extension edit page (not release).
+
+A release notes link is displayed with a URL to the release notes as provided in
+the "Provider Title" field of the extension release edit page.
+
+When running the update then the web browser should navigate to
+http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-US.html
+
+
+================================================================================
+web7.oxt
+================================================================================
+Need not be committed in extensions/www/testarea/desktop
+
+web7.oxt is intended for tests with extensions.services.openoffice.org.
+It does not contain <update-information>. That is, the Extension Manager will obtain
+the update information from the repository as feed:
+
+http://updateext.services.openoffice.org/ProductUpdateService/check.Update
+
+The description.xml which will be uploaded contains URLs for release notes and publisher
+names/ URLs. That is, this information is not generated from the information of the
+repository web site.
+
+Test
+-----------
+Repository:
+
+-Create the new extension in the repository.
+-Provide a company name and a URL to the company website. In our case these should be different
+ to those provided in the description.xml. These should NOT go into the update feed.
+ Choose for example as "Provider Title": FOO and as "Provider URL" some valid URL but NOT
+ http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-US.html
+
+-Create a new release for the extension. Upload the description.xml of version 2.0
+(update/web7/description.xml). Provide a download URL for the web site (field
+ "Download from page / Open follow up page URL", which should be
+ http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-US.html
+ Provide release notes.
+
+Office:
+-Install version 1.0 of the extension:
+ desktop/test/deployment/update/website_update/web7.oxt
+
+-Run the update in the Extension Manager
+
+Result:
+The Update Dialog should show the publisher name as provided in the description.xml.
+That is: My OpenOffice en-US and NOT "FOO".
+
+A release notes link is displayed with a URL to the release notes as provided in
+the description.xml. That is:
+http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_xxx.html
+
+When running the update then the web browser should navigate to
+http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-US.html
diff --git a/desktop/test/deployment/update/website_update/update/web1.oxt b/desktop/test/deployment/update/website_update/update/web1.oxt
new file mode 100644
index 0000000000..157d5d952c
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web1.update.xml b/desktop/test/deployment/update/website_update/update/web1.update.xml
new file mode 100644
index 0000000000..860c8ebc93
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web1.update.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/website_update/web1"/>
+
+ <update-website>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en.html" lang="en" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de-DE-altmark.html" lang="de-DE-altmark" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-GB.html" lang="en-GB" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-US.html" lang="en-US" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-US-region1.html" lang="en-US-region1" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-US-region2.html" lang="en-US-region2" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-region3.html" lang="en-region3" />
+ </update-website>
+</description>
+
diff --git a/desktop/test/deployment/update/website_update/update/web1_de-DE-altmark.html b/desktop/test/deployment/update/website_update/update/web1_de-DE-altmark.html
new file mode 100644
index 0000000000..ffed5a52e8
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web1_de-DE-altmark.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Update Extensions</H1>
+<H1>de-DE-altmark</H1>
+<p><a href="web1.oxt">web1.oxt</a></p>
+<p><a href="web2.oxt">web2.oxt</a></p>
+<p><a href="web3.oxt">web3.oxt</a></p>
+<p><a href="web4.oxt">web4.oxt</a></p>
+<p><a href="web5.oxt">web5.oxt</a></p>
+<p><a href="web6.oxt">web6.oxt</a></p>
+<p><a href="web7.oxt">web7.oxt</a></p>
+
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/website_update/update/web1_de-DE.html b/desktop/test/deployment/update/website_update/update/web1_de-DE.html
new file mode 100644
index 0000000000..33fb7f2ec8
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web1_de-DE.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Update Extensions</H1>
+<H1>de-DE</H1>
+<p><a href="web1.oxt">web1.oxt</a></p>
+<p><a href="web2.oxt">web2.oxt</a></p>
+<p><a href="web3.oxt">web3.oxt</a></p>
+<p><a href="web4.oxt">web4.oxt</a></p>
+<p><a href="web5.oxt">web5.oxt</a></p>
+<p><a href="web6.oxt">web6.oxt</a></p>
+<p><a href="web7.oxt">web7.oxt</a></p>
+
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/website_update/update/web1_de.html b/desktop/test/deployment/update/website_update/update/web1_de.html
new file mode 100644
index 0000000000..31a53b91db
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web1_de.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Update Extensions</H1>
+<H1>de</H1>
+<p><a href="web1.oxt">web1.oxt</a></p>
+<p><a href="web2.oxt">web2.oxt</a></p>
+<p><a href="web3.oxt">web3.oxt</a></p>
+<p><a href="web4.oxt">web4.oxt</a></p>
+<p><a href="web5.oxt">web5.oxt</a></p>
+<p><a href="web6.oxt">web6.oxt</a></p>
+<p><a href="web7.oxt">web7.oxt</a></p>
+
+
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/website_update/update/web1_en-GB.html b/desktop/test/deployment/update/website_update/update/web1_en-GB.html
new file mode 100644
index 0000000000..c46328a821
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web1_en-GB.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Update Extensions</H1>
+<H1>en-GB</H1>
+<p><a href="web1.oxt">web1.oxt</a></p>
+<p><a href="web2.oxt">web2.oxt</a></p>
+<p><a href="web3.oxt">web3.oxt</a></p>
+<p><a href="web4.oxt">web4.oxt</a></p>
+<p><a href="web5.oxt">web5.oxt</a></p>
+<p><a href="web6.oxt">web6.oxt</a></p>
+<p><a href="web7.oxt">web7.oxt</a></p>
+
+
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/website_update/update/web1_en-US-region1.html b/desktop/test/deployment/update/website_update/update/web1_en-US-region1.html
new file mode 100644
index 0000000000..80b41823b7
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web1_en-US-region1.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Update Extensions</H1>
+<H1>en-US-region1</H1>
+<p><a href="web1.oxt">web1.oxt</a></p>
+<p><a href="web2.oxt">web2.oxt</a></p>
+<p><a href="web3.oxt">web3.oxt</a></p>
+<p><a href="web4.oxt">web4.oxt</a></p>
+<p><a href="web5.oxt">web5.oxt</a></p>
+<p><a href="web6.oxt">web6.oxt</a></p>
+<p><a href="web7.oxt">web7.oxt</a></p>
+
+
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/website_update/update/web1_en-US-region2.html b/desktop/test/deployment/update/website_update/update/web1_en-US-region2.html
new file mode 100644
index 0000000000..1a501f520d
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web1_en-US-region2.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Update Extensions</H1>
+<H1>en-US-region2</H1>
+<p><a href="web1.oxt">web1.oxt</a></p>
+<p><a href="web2.oxt">web2.oxt</a></p>
+<p><a href="web3.oxt">web3.oxt</a></p>
+<p><a href="web4.oxt">web4.oxt</a></p>
+<p><a href="web5.oxt">web5.oxt</a></p>
+<p><a href="web6.oxt">web6.oxt</a></p>
+<p><a href="web7.oxt">web7.oxt</a></p>
+
+
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/website_update/update/web1_en-US.html b/desktop/test/deployment/update/website_update/update/web1_en-US.html
new file mode 100644
index 0000000000..f861b09c01
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web1_en-US.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Update Extensions</H1>
+<H1>en-US</H1>
+<p><a href="web1.oxt">web1.oxt</a></p>
+<p><a href="web2.oxt">web2.oxt</a></p>
+<p><a href="web3.oxt">web3.oxt</a></p>
+<p><a href="web4.oxt">web4.oxt</a></p>
+<p><a href="web5.oxt">web5.oxt</a></p>
+<p><a href="web6.oxt">web6.oxt</a></p>
+<p><a href="web7.oxt">web7.oxt</a></p>
+
+
+
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/website_update/update/web1_en-region3.html b/desktop/test/deployment/update/website_update/update/web1_en-region3.html
new file mode 100644
index 0000000000..f55bcbe381
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web1_en-region3.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Update Extensions</H1>
+<H1>en-region3</H1>
+<p><a href="web1.oxt">web1.oxt</a></p>
+<p><a href="web2.oxt">web2.oxt</a></p>
+<p><a href="web3.oxt">web3.oxt</a></p>
+<p><a href="web4.oxt">web4.oxt</a></p>
+<p><a href="web5.oxt">web5.oxt</a></p>
+<p><a href="web6.oxt">web6.oxt</a></p>
+<p><a href="web7.oxt">web7.oxt</a></p>
+
+
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/website_update/update/web1_en.html b/desktop/test/deployment/update/website_update/update/web1_en.html
new file mode 100644
index 0000000000..a0b422ebf2
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web1_en.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<H1>Update Extensions</H1>
+<H1>en</H1>
+<p><a href="web1.oxt">web1.oxt</a></p>
+<p><a href="web2.oxt">web2.oxt</a></p>
+<p><a href="web3.oxt">web3.oxt</a></p>
+<p><a href="web4.oxt">web4.oxt</a></p>
+<p><a href="web5.oxt">web5.oxt</a></p>
+<p><a href="web6.oxt">web6.oxt</a></p>
+<p><a href="web7.oxt">web7.oxt</a></p>
+
+
+</BODY>
+</HTML>
+
diff --git a/desktop/test/deployment/update/website_update/update/web2.oxt b/desktop/test/deployment/update/website_update/update/web2.oxt
new file mode 100644
index 0000000000..3a13e81143
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web2.update.xml b/desktop/test/deployment/update/website_update/update/web2.update.xml
new file mode 100644
index 0000000000..18c871eab7
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web2.update.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/website_update/web2"/>
+
+ <update-website>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en.html" lang="en" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de-DE-altmark.html" lang="de-DE-altmark" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-GB.html" lang="en-GB" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-US-region1.html" lang="en-US-region1" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-US-region2.html" lang="en-US-region2" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-region3.html" lang="en-region3" />
+ </update-website>
+</description>
+
diff --git a/desktop/test/deployment/update/website_update/update/web3.oxt b/desktop/test/deployment/update/website_update/update/web3.oxt
new file mode 100644
index 0000000000..b3214a4e69
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web3.update.xml b/desktop/test/deployment/update/website_update/update/web3.update.xml
new file mode 100644
index 0000000000..5d7711def6
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web3.update.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/website_update/web3"/>
+
+ <update-website>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en.html" lang="en" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de-DE-altmark.html" lang="de-DE-altmark" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-GB.html" lang="en-GB" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-region3.html" lang="en-region3" />
+ </update-website>
+</description>
+
diff --git a/desktop/test/deployment/update/website_update/update/web4.oxt b/desktop/test/deployment/update/website_update/update/web4.oxt
new file mode 100644
index 0000000000..93766fd44f
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web4.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web4.update.xml b/desktop/test/deployment/update/website_update/update/web4.update.xml
new file mode 100644
index 0000000000..e016ae3cbf
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web4.update.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/website_update/web4"/>
+
+ <update-website>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de-DE-altmark.html" lang="de-DE-altmark" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-GB.html" lang="en-GB" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_en-region3.html" lang="en-region3" />
+ </update-website>
+</description>
+
diff --git a/desktop/test/deployment/update/website_update/update/web5.oxt b/desktop/test/deployment/update/website_update/update/web5.oxt
new file mode 100644
index 0000000000..1ae8f01b19
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web5.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web5.update.xml b/desktop/test/deployment/update/website_update/update/web5.update.xml
new file mode 100644
index 0000000000..951ef95a9a
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web5.update.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/website_update/web5"/>
+
+ <update-website>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/website_update/update/web1_de-DE-altmark.html" lang="de-DE-altmark" />
+ </update-website>
+</description>
+
diff --git a/desktop/test/deployment/update/website_update/update/web6.oxt b/desktop/test/deployment/update/website_update/update/web6.oxt
new file mode 100644
index 0000000000..8bc16fb2c7
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web6.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web6/description.xml b/desktop/test/deployment/update/website_update/update/web6/description.xml
new file mode 100644
index 0000000000..47a32a287a
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web6/description.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/description/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/website_update/web6"/>
+ <display-name>
+ <name>web-based update test 1</name>
+ </display-name>
+
+</description>
+
diff --git a/desktop/test/deployment/update/website_update/update/web6/readme.txt b/desktop/test/deployment/update/website_update/update/web6/readme.txt
new file mode 100644
index 0000000000..6756b8ef91
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web6/readme.txt
@@ -0,0 +1,5 @@
+This folder contains the description.xml from update/web6.oxt
+When creating the release 2.0 on the repository then this description.xml can be uploaded.
+
+
+This folder is not needed on extensions.openoffice.org/testarea/desktop/...
diff --git a/desktop/test/deployment/update/website_update/update/web7.oxt b/desktop/test/deployment/update/website_update/update/web7.oxt
new file mode 100644
index 0000000000..4d6220a48a
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web7.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/update/web7/description.xml b/desktop/test/deployment/update/website_update/update/web7/description.xml
new file mode 100644
index 0000000000..9d5e4569d4
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web7/description.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/description/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="2.0" />
+ <identifier value="org.openoffice/framework/desktop/test/deployment/update/website_update/web7"/>
+ <display-name>
+ <name>web-based update test 1</name>
+ </display-name>
+
+ <publisher>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de.html" lang="de">My OpenOffice de</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en.html" lang="en">My OpenOffice en</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE.html" lang="de-DE">My OpenOffice de-DE</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_de-DE-altmark.html" lang="de-DE-altmark">My OpenOffice de-DE-altmark</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-GB.html" lang="en-GB">My OpenOffice en-GB</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US.html" lang="en-US">My OpenOffice en-US</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US-region1.html" lang="en-US-region1">My OpenOffice en-US-region1</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-US-region2.html" lang="en-US-region2">My OpenOffice en-US-region2</name>
+ <name xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/publisher_en-region3.html" lang="en-region3">My OpenOffice en-region3</name>
+ </publisher>
+
+ <release-notes>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de.html" lang="de" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en.html" lang="en" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE.html" lang="de-DE" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_de-DE-altmark.html" lang="de-DE-altmark" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-GB.html" lang="en-GB" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-US.html" lang="en-US" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-US-region1.html" lang="en-US-region1" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-US-region2.html" lang="en-US-region2" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/publisher/release-notes_en-region3.html" lang="en-region3" />
+ </release-notes>
+
+
+</description>
+
diff --git a/desktop/test/deployment/update/website_update/update/web7/readme.txt b/desktop/test/deployment/update/website_update/update/web7/readme.txt
new file mode 100644
index 0000000000..45b2e23740
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/update/web7/readme.txt
@@ -0,0 +1,5 @@
+This folder contains the description.xml from update/web7.oxt
+When creating the release 2.0 on the repository then this description.xml can be uploaded.
+
+
+This folder is not needed on extensions.openoffice.org/testarea/desktop/...
diff --git a/desktop/test/deployment/update/website_update/web1.oxt b/desktop/test/deployment/update/website_update/web1.oxt
new file mode 100644
index 0000000000..7c17586e04
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/web1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web2.oxt b/desktop/test/deployment/update/website_update/web2.oxt
new file mode 100644
index 0000000000..705e70a753
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/web2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web3.oxt b/desktop/test/deployment/update/website_update/web3.oxt
new file mode 100644
index 0000000000..4e63a75f0c
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/web3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web4.oxt b/desktop/test/deployment/update/website_update/web4.oxt
new file mode 100644
index 0000000000..e66513e683
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/web4.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web5.oxt b/desktop/test/deployment/update/website_update/web5.oxt
new file mode 100644
index 0000000000..65b02db934
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/web5.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web6.oxt b/desktop/test/deployment/update/website_update/web6.oxt
new file mode 100644
index 0000000000..98416edfa5
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/web6.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/website_update/web7.oxt b/desktop/test/deployment/update/website_update/web7.oxt
new file mode 100644
index 0000000000..31ba45f032
--- /dev/null
+++ b/desktop/test/deployment/update/website_update/web7.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/readme.txt b/desktop/test/deployment/update/wrong_url/readme.txt
new file mode 100644
index 0000000000..9e3bf8b969
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/readme.txt
@@ -0,0 +1,18 @@
+The extensions use either multiple urls to the update information file, or the update information file contains multiple urls. Some of those URLs point to locations which do not exist.
+
+url1.oxt: The corresponding url1.update.xml contains two download urls. The first Url points to a location that is not available. The second points to the new version.
+
+url2.oxt: Contains to URLs to update information files. The first URL in url2.oxt is wrong and the second is
+correct.
+
+url3.oxt: contains to URLs to update information files which point to locations which do not exist.
+
+wrongdownload1.oxt: The corresponding wrongdownload1.update.xml contains two download URLs which point to locations which are not available.
+
+wrongdownload2.oxt: same as wrongdownload1.oxt
+
+wrongdownload3.oxt: same as wrongdownload1.oxt
+
+
+Use the wrongdownload extensions to check the automatic scrolling of the text area that contains the results.
+
diff --git a/desktop/test/deployment/update/wrong_url/update/url1.oxt b/desktop/test/deployment/update/wrong_url/update/url1.oxt
new file mode 100644
index 0000000000..479b546c84
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/update/url1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/update/url1.update.xml b/desktop/test/deployment/update/wrong_url/update/url1.update.xml
new file mode 100644
index 0000000000..e6980d5586
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/update/url1.update.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.url1.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/wrong_url/notavailable/url1.oxt" />
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/wrong_url/update/url1.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/wrong_url/update/url2.oxt b/desktop/test/deployment/update/wrong_url/update/url2.oxt
new file mode 100644
index 0000000000..ec2c5c6528
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/update/url2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/update/url2.update.xml b/desktop/test/deployment/update/wrong_url/update/url2.update.xml
new file mode 100644
index 0000000000..3ced2f9d2c
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/update/url2.update.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.url2.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/wrong_url/update/url2.oxt" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/wrong_url/update/wrongdownload1.update.xml b/desktop/test/deployment/update/wrong_url/update/wrongdownload1.update.xml
new file mode 100644
index 0000000000..916036e038
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/update/wrongdownload1.update.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.wrongdownload1.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/wrong_url/notavailable/wrongdownload1.oxt" />
+ <src xlink:href="http://extensions.openoffice.org/notavailable/" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/wrong_url/update/wrongdownload2.update.xml b/desktop/test/deployment/update/wrong_url/update/wrongdownload2.update.xml
new file mode 100644
index 0000000000..36b24ed195
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/update/wrongdownload2.update.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.wrongdownload2.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/wrong_url/notavailable/wrongdownload2.oxt" />
+ <src xlink:href="http://extensions.openoffice.org/notavailable/" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/wrong_url/update/wrongdownload3.update.xml b/desktop/test/deployment/update/wrong_url/update/wrongdownload3.update.xml
new file mode 100644
index 0000000000..f5a2bb8b1b
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/update/wrongdownload3.update.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<description xmlns="http://openoffice.org/extensions/update/2006"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <identifier value="org.openoffice.legacy.wrongdownload3.oxt"/>
+ <version value="2.0" />
+ <update-download>
+ <src xlink:href="http://extensions.openoffice.org/testarea/desktop/wrong_url/notavailable/wrongdownload3.oxt" />
+ <src xlink:href="http://extensions.openoffice.org/notavailable/" />
+ </update-download>
+</description>
+
diff --git a/desktop/test/deployment/update/wrong_url/url1.oxt b/desktop/test/deployment/update/wrong_url/url1.oxt
new file mode 100644
index 0000000000..41d8522fbb
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/url1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/url2.oxt b/desktop/test/deployment/update/wrong_url/url2.oxt
new file mode 100644
index 0000000000..d68e45e5e5
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/url2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/url3.oxt b/desktop/test/deployment/update/wrong_url/url3.oxt
new file mode 100644
index 0000000000..80f93b74d1
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/url3.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/wrongdownload1.oxt b/desktop/test/deployment/update/wrong_url/wrongdownload1.oxt
new file mode 100644
index 0000000000..535ae331a9
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/wrongdownload1.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/wrongdownload2.oxt b/desktop/test/deployment/update/wrong_url/wrongdownload2.oxt
new file mode 100644
index 0000000000..aafe2c2467
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/wrongdownload2.oxt
Binary files differ
diff --git a/desktop/test/deployment/update/wrong_url/wrongdownload3.oxt b/desktop/test/deployment/update/wrong_url/wrongdownload3.oxt
new file mode 100644
index 0000000000..fbdac925a2
--- /dev/null
+++ b/desktop/test/deployment/update/wrong_url/wrongdownload3.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/readme.txt b/desktop/test/deployment/version/readme.txt
new file mode 100644
index 0000000000..6135d08a26
--- /dev/null
+++ b/desktop/test/deployment/version/readme.txt
@@ -0,0 +1,76 @@
+#
+# 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/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+There are three extensions in various versions:
+
+1 version_XXX/plain.oxt has no dependencies and no license.
+2a version_XXX/dependency.oxt has an unsatisfied dependency and no license.
+2b version_nodependencies_XXX/dependency.oxt is identical to 2a but without the
+ dependency.
+3 version_XXX/license.oxt has no dependencies and a license.
+
+The different versions are:
+
+A version_none contains no version element (treated as version "0").
+B version_badelement contains a bad <version val="1"/> (not allowed by the
+ specification, but treated by the current implementation as version "0").
+C version_badvalue contains a bad <version value="1.a"/> (not allowed by the
+ specification, but treated by the current implementation as version "1").
+D version_0.0 contains <version value="0.0"/> (same as version "0").
+E version_1.2.3 contains <version value="1.2.3"/>.
+F version_1.2.4.7 contains <version value="1.2.4.7"/>.
+G version_1.02.4.7.0 contains <version value="1.02.4.7.0"/> (same as version
+ "1.2.4.7").
+H version_1.2.15.3 contains <version value="1.2.15.3"/>.
+
+The total order among the various versions is thus
+
+ A = B = D < C < E < F = G < H.
+
+Things to watch for:
+
+- If version y of extension e is to be installed and version x < y of
+ extension e is already installed, then
+ unopkg add e
+ will replace x with y.
+
+- If version y of extension e is to be installed and version x >= y of
+ extension e is already installed, then
+ unopkg add e
+ will fail with an error message.
+
+- If version y of extension e is to be installed and any version x of
+ extension e is already installed, then
+ unopkg add -f e
+ will replace x with y.
+
+- If version y of extension e is to be installed and any version x of
+ extension e is already installed, then
+ unopkg gui "Add..."
+ and
+ soffice "Tools - Package Manager... - Add..."
+ will query with a dialog whether to replace x with y. The dialog will have
+ "OK" (replace) preselected if x < y, and "Cancel" otherwise.
+
+- If replacing an installed version x of an extension e with a version y fails
+ because y has unsatisfied dependencies, or because y has a license to which the
+ user does not agree, version x is left installed afterwards.
+
+- Checking for already installed versions of an extension is only done within a
+ single layer (unopkg versus unopkg --shared; "My Packages" versus
+ "OpenOffice Packages" in unopkg gui/soffice), not across layers.
diff --git a/desktop/test/deployment/version/version_0.0/dependency.oxt b/desktop/test/deployment/version/version_0.0/dependency.oxt
new file mode 100644
index 0000000000..30c8432251
--- /dev/null
+++ b/desktop/test/deployment/version/version_0.0/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_0.0/license.oxt b/desktop/test/deployment/version/version_0.0/license.oxt
new file mode 100644
index 0000000000..b994ff71b7
--- /dev/null
+++ b/desktop/test/deployment/version/version_0.0/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_0.0/plain.oxt b/desktop/test/deployment/version/version_0.0/plain.oxt
new file mode 100644
index 0000000000..f156014eb8
--- /dev/null
+++ b/desktop/test/deployment/version/version_0.0/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.02.4.7.0/dependency.oxt b/desktop/test/deployment/version/version_1.02.4.7.0/dependency.oxt
new file mode 100644
index 0000000000..4d75f70762
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.02.4.7.0/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.02.4.7.0/license.oxt b/desktop/test/deployment/version/version_1.02.4.7.0/license.oxt
new file mode 100644
index 0000000000..40938b7543
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.02.4.7.0/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.02.4.7.0/plain.oxt b/desktop/test/deployment/version/version_1.02.4.7.0/plain.oxt
new file mode 100644
index 0000000000..521a2b6c77
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.02.4.7.0/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.15.3/dependency.oxt b/desktop/test/deployment/version/version_1.2.15.3/dependency.oxt
new file mode 100644
index 0000000000..6f2a301f3b
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.2.15.3/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.15.3/license.oxt b/desktop/test/deployment/version/version_1.2.15.3/license.oxt
new file mode 100644
index 0000000000..2e2a875750
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.2.15.3/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.15.3/plain.oxt b/desktop/test/deployment/version/version_1.2.15.3/plain.oxt
new file mode 100644
index 0000000000..000f3a144f
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.2.15.3/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.3/dependency.oxt b/desktop/test/deployment/version/version_1.2.3/dependency.oxt
new file mode 100644
index 0000000000..c296634587
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.2.3/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.3/license.oxt b/desktop/test/deployment/version/version_1.2.3/license.oxt
new file mode 100644
index 0000000000..9cd80e9911
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.2.3/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.3/plain.oxt b/desktop/test/deployment/version/version_1.2.3/plain.oxt
new file mode 100644
index 0000000000..e34264591c
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.2.3/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.4.7/dependency.oxt b/desktop/test/deployment/version/version_1.2.4.7/dependency.oxt
new file mode 100644
index 0000000000..53089e76b0
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.2.4.7/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.4.7/license.oxt b/desktop/test/deployment/version/version_1.2.4.7/license.oxt
new file mode 100644
index 0000000000..e283508d34
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.2.4.7/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_1.2.4.7/plain.oxt b/desktop/test/deployment/version/version_1.2.4.7/plain.oxt
new file mode 100644
index 0000000000..d63c79a734
--- /dev/null
+++ b/desktop/test/deployment/version/version_1.2.4.7/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badelement/dependency.oxt b/desktop/test/deployment/version/version_badelement/dependency.oxt
new file mode 100644
index 0000000000..3cb8faa2e7
--- /dev/null
+++ b/desktop/test/deployment/version/version_badelement/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badelement/license.oxt b/desktop/test/deployment/version/version_badelement/license.oxt
new file mode 100644
index 0000000000..7b2b7730ec
--- /dev/null
+++ b/desktop/test/deployment/version/version_badelement/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badelement/plain.oxt b/desktop/test/deployment/version/version_badelement/plain.oxt
new file mode 100644
index 0000000000..62267c212f
--- /dev/null
+++ b/desktop/test/deployment/version/version_badelement/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badvalue/dependency.oxt b/desktop/test/deployment/version/version_badvalue/dependency.oxt
new file mode 100644
index 0000000000..7d81033654
--- /dev/null
+++ b/desktop/test/deployment/version/version_badvalue/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badvalue/license.oxt b/desktop/test/deployment/version/version_badvalue/license.oxt
new file mode 100644
index 0000000000..b97723ebb0
--- /dev/null
+++ b/desktop/test/deployment/version/version_badvalue/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_badvalue/plain.oxt b/desktop/test/deployment/version/version_badvalue/plain.oxt
new file mode 100644
index 0000000000..f9964ed8f0
--- /dev/null
+++ b/desktop/test/deployment/version/version_badvalue/plain.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_0.0/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_0.0/dependency.oxt
new file mode 100644
index 0000000000..f156014eb8
--- /dev/null
+++ b/desktop/test/deployment/version/version_nodependencies_0.0/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_1.02.4.7.0/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_1.02.4.7.0/dependency.oxt
new file mode 100644
index 0000000000..521a2b6c77
--- /dev/null
+++ b/desktop/test/deployment/version/version_nodependencies_1.02.4.7.0/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_1.2.15.3/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_1.2.15.3/dependency.oxt
new file mode 100644
index 0000000000..000f3a144f
--- /dev/null
+++ b/desktop/test/deployment/version/version_nodependencies_1.2.15.3/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_1.2.3/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_1.2.3/dependency.oxt
new file mode 100644
index 0000000000..e34264591c
--- /dev/null
+++ b/desktop/test/deployment/version/version_nodependencies_1.2.3/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_1.2.4.7/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_1.2.4.7/dependency.oxt
new file mode 100644
index 0000000000..d63c79a734
--- /dev/null
+++ b/desktop/test/deployment/version/version_nodependencies_1.2.4.7/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_badelement/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_badelement/dependency.oxt
new file mode 100644
index 0000000000..62267c212f
--- /dev/null
+++ b/desktop/test/deployment/version/version_nodependencies_badelement/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_badvalue/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_badvalue/dependency.oxt
new file mode 100644
index 0000000000..f9964ed8f0
--- /dev/null
+++ b/desktop/test/deployment/version/version_nodependencies_badvalue/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_nodependencies_none/dependency.oxt b/desktop/test/deployment/version/version_nodependencies_none/dependency.oxt
new file mode 100644
index 0000000000..fc227b099e
--- /dev/null
+++ b/desktop/test/deployment/version/version_nodependencies_none/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_none/dependency.oxt b/desktop/test/deployment/version/version_none/dependency.oxt
new file mode 100644
index 0000000000..36a1854bf5
--- /dev/null
+++ b/desktop/test/deployment/version/version_none/dependency.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_none/license.oxt b/desktop/test/deployment/version/version_none/license.oxt
new file mode 100644
index 0000000000..1564c089b0
--- /dev/null
+++ b/desktop/test/deployment/version/version_none/license.oxt
Binary files differ
diff --git a/desktop/test/deployment/version/version_none/plain.oxt b/desktop/test/deployment/version/version_none/plain.oxt
new file mode 100644
index 0000000000..fc227b099e
--- /dev/null
+++ b/desktop/test/deployment/version/version_none/plain.oxt
Binary files differ