diff options
Diffstat (limited to 'tests/auto')
41 files changed, 531 insertions, 3 deletions
diff --git a/tests/auto/installer/componentmodel/tst_componentmodel.cpp b/tests/auto/installer/componentmodel/tst_componentmodel.cpp index 0672a03ec..3aef34fe4 100644 --- a/tests/auto/installer/componentmodel/tst_componentmodel.cpp +++ b/tests/auto/installer/componentmodel/tst_componentmodel.cpp @@ -521,7 +521,7 @@ private: // we need at least these to be able to test the model component->setValue("Name", info.data.value("Name").toString()); - component->setValue("TreeName", info.data.value("TreeName").toString()); + component->setValue("TreeName", info.data.value("TreeName").value<QPair<QString, bool>>().first); QString isDefault = info.data.value("Default").toString(); if (m_core.noDefaultInstallation()) isDefault = scFalse; diff --git a/tests/auto/installer/treename/data/invalid_repository/Updates.xml b/tests/auto/installer/treename/data/invalid_repository/Updates.xml index 282e3a43f..b329bb223 100644 --- a/tests/auto/installer/treename/data/invalid_repository/Updates.xml +++ b/tests/auto/installer/treename/data/invalid_repository/Updates.xml @@ -27,4 +27,29 @@ <SortingPriority>40</SortingPriority> <TreeName>componentA.sub1</TreeName> </PackageUpdate> + <PackageUpdate> + <Name>componentC.sub1</Name> + <DisplayName>Component C subcomponent1</DisplayName> + <Description>Component</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>40</SortingPriority> + </PackageUpdate> + <PackageUpdate> + <Name>componentD</Name> + <DisplayName>Component D</DisplayName> + <Description>Component</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>40</SortingPriority> + <TreeName moveChildren="true">componentC</TreeName> + </PackageUpdate> + <PackageUpdate> + <Name>componentD.sub1</Name> + <DisplayName>Component D subcomponent 1</DisplayName> + <Description>Component</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>40</SortingPriority> + </PackageUpdate> </Updates> diff --git a/tests/auto/installer/treename/data/repository_children/Updates.xml b/tests/auto/installer/treename/data/repository_children/Updates.xml new file mode 100644 index 000000000..a17f481d6 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/Updates.xml @@ -0,0 +1,229 @@ +<Updates> + <ApplicationName>{AnyApplication}</ApplicationName> + <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> + <PackageUpdate> + <Name>componentA</Name> + <DisplayName>Component A</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <TreeName moveChildren="true">componentANew</TreeName> + <UpdateFile UncompressedSize="99" CompressedSize="263" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>8148a84c9a52eb989525f4807482f42c49c743a4</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentA.subcomponent1</Name> + <DisplayName>Subcomponent 1</DisplayName> + <Description>This component does not have leaf components.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <UpdateFile UncompressedSize="99" CompressedSize="267" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>c0c5d273b9c413db07fbd1ffee58759f0059d668</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentB</Name> + <DisplayName>Component B (automatic dependency to componentA.subcomponent1)</DisplayName> + <Description>This component has an automatic dependency, If the dependency is marked for installation, this component is also installed.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>90</SortingPriority> + <AutoDependOn>componentA.subcomponent1</AutoDependOn> + <UpdateFile UncompressedSize="99" CompressedSize="263" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>c517b08c40ef5c5984f6bf34a626060dcbab6ba5</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentE</Name> + <DisplayName>Component E</DisplayName> + <Description>This is a component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>60</SortingPriority> + <UpdateFile UncompressedSize="99" CompressedSize="263" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>2833ea6d508925e64f00fb6b699532992b923ab2</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF</Name> + <DisplayName>Component F</DisplayName> + <Description>This component contains 2 subcomponents.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>40</SortingPriority> + <UpdateFile UncompressedSize="99" CompressedSize="263" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>21ca242b83ce32dfe066348cbb453080b5967e30</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent1</Name> + <DisplayName>Subcomponent 1</DisplayName> + <Description>This component contains 2 leaf components.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <TreeName moveChildren="true">FSub1ToRoot</TreeName> + <UpdateFile UncompressedSize="99" CompressedSize="267" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>e2745196bceaae476cac330f0af0ce6e564d2d3d</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent1.subsubcomponent1</Name> + <DisplayName>Subsubcomponent 1</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <UpdateFile UncompressedSize="99" CompressedSize="271" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>8af98107adadb1fda37c1c086c53ed289cc77661</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent1.subsubcomponent2</Name> + <DisplayName>Subsubcomponent 2</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>50</SortingPriority> + <UpdateFile UncompressedSize="99" CompressedSize="271" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>69458b616989a44e52b480dd9133721bc52b1558</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent2</Name> + <DisplayName>Subcomponent 2</DisplayName> + <Description>This component contains 2 leaf components.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>50</SortingPriority> + <TreeName moveChildren="true">componentE.sub1</TreeName> + <UpdateFile UncompressedSize="99" CompressedSize="267" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>9d985ee35442e6e621f8ec24dc41be9f6cab9dad</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent2.subsubcomponent1</Name> + <DisplayName>Subsubcomponent 1</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <UpdateFile UncompressedSize="99" CompressedSize="271" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>43223427efd8c2a428ead343a79709cd1bfc5618</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent2.subsubcomponent2</Name> + <DisplayName>Subsubcomponent 2</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>50</SortingPriority> + <UpdateFile UncompressedSize="99" CompressedSize="271" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>d76690fb2f41aab262d7d8621c46fa464f35a550</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentH</Name> + <DisplayName>Component H</DisplayName> + <Description>An example component without dependencies.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>30</SortingPriority> + <TreeName moveChildren="true">componentI</TreeName> + <UpdateFile UncompressedSize="99" CompressedSize="263" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>04426aec311900e8d74ae42cc6fe49282d314841</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentH.subcomponent1</Name> + <DisplayName>Subcomponent 1</DisplayName> + <Description>This component does not contain leaf components.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <UpdateFile UncompressedSize="99" CompressedSize="267" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>065a901fd86d4e7fd86200da47079c97070178c7</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentI.subcomponent2</Name> + <DisplayName>Subcomponent 1</DisplayName> + <Description>Subcomponent without original parent.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>30</SortingPriority> + <UpdateFile UncompressedSize="99" CompressedSize="267" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>3d2d928ed10455fe884cab96498a3fc826505406</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentJ</Name> + <DisplayName>Component J</DisplayName> + <Description>An example component without dependencies.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>30</SortingPriority> + <TreeName moveChildren="true">componentJNew</TreeName> + <UpdateFile UncompressedSize="99" CompressedSize="263" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>1a46e58cd1824b2c0a4a93d6b27050eb0f6feb29</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentJ.subcomponent1</Name> + <DisplayName>Subcomponent 1</DisplayName> + <Description>Subcomponent with parent.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>30</SortingPriority> + <UpdateFile UncompressedSize="99" CompressedSize="267" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>dd1cfaa8f6cd14f81635e8917f348006ca7ffdce</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentK</Name> + <DisplayName>Component K (depends on componentJ.subcomponent1)</DisplayName> + <Description>This component depends on Component J subcomponent.</Description> + <Dependencies>componentJ.subcomponent1</Dependencies> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>80</SortingPriority> + <UpdateFile UncompressedSize="99" CompressedSize="263" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>98253c1ab872c9baa64d2fe3525f86a65e73d1f2</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentL</Name> + <DisplayName>Component L</DisplayName> + <Description>Component with tree name, is replaced by other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2022-01-01</ReleaseDate> + <TreeName moveChildren="true">LToNewRoot</TreeName> + </PackageUpdate> + <PackageUpdate> + <Name>componentL.sub1</Name> + <DisplayName>Component L subcomponent 1</DisplayName> + <Description>Child of component L</Description> + <Version>1.0.0</Version> + <ReleaseDate>2022-01-01</ReleaseDate> + </PackageUpdate> + <PackageUpdate> + <Name>componentL.sub2</Name> + <DisplayName>Component L subcomponent 2</DisplayName> + <Description>Child of component L</Description> + <Version>1.0.0</Version> + <ReleaseDate>2022-01-01</ReleaseDate> + </PackageUpdate> + <PackageUpdate> + <Name>componentM</Name> + <DisplayName>Component M</DisplayName> + <Description>Component that replaces other component</Description> + <Version>1.0.0</Version> + <ReleaseDate>2022-01-01</ReleaseDate> + <Replaces>componentL</Replaces> + </PackageUpdate> +</Updates> diff --git a/tests/auto/installer/treename/data/repository_children/componentA.subcomponent1/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentA.subcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..095fd7e30 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentA.subcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentA.subcomponent1/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentA.subcomponent1/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..5dcce5d73 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentA.subcomponent1/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentA/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentA/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..21d62e629 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentA/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentA/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentA/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..094ae8806 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentA/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentB/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentB/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..2cb5dfee9 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentB/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentB/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentB/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..d3ed0961e --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentB/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentE/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentE/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..cfdef213e --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentE/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentE/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentE/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..466926547 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentE/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..3e9297acc --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent1/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent1/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..7adec9a82 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent1/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..b715e5587 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent2/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent2/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..69406b1b2 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1.subsubcomponent2/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..f2d2141d7 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..1f5c58d2d --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent1/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..5307b3de4 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent1/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent1/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..1b44385ab --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent1/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..7e83e996e --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent2/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent2/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..c89ac2b7b --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2.subsubcomponent2/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..9c97e4a99 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..258b3905f --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF.subcomponent2/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentF/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..12c4c1248 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentF/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentF/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..88ec39233 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentF/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentH.subcomponent1/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentH.subcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..4b2747235 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentH.subcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentH.subcomponent1/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentH.subcomponent1/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..ab120d4c3 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentH.subcomponent1/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentH/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentH/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..767f789ff --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentH/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentH/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentH/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..e5c9b47c9 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentH/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentI.subcomponent1/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentI.subcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..2000479c9 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentI.subcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentI.subcomponent1/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentI.subcomponent1/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..8ecfeaca8 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentI.subcomponent1/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentI.subcomponent2/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentI.subcomponent2/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..09a8e921a --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentI.subcomponent2/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentI.subcomponent2/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentI.subcomponent2/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..acaccd042 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentI.subcomponent2/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentJ.subcomponent1/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentJ.subcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..25247bad4 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentJ.subcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentJ.subcomponent1/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentJ.subcomponent1/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..c45a63b41 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentJ.subcomponent1/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentJ/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentJ/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..aa3354b8c --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentJ/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentJ/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentJ/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..14b41bdfe --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentJ/1.0.0meta.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentK/1.0.0content.7z b/tests/auto/installer/treename/data/repository_children/componentK/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..e28bb9ea7 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentK/1.0.0content.7z diff --git a/tests/auto/installer/treename/data/repository_children/componentK/1.0.0meta.7z b/tests/auto/installer/treename/data/repository_children/componentK/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..9112f88c3 --- /dev/null +++ b/tests/auto/installer/treename/data/repository_children/componentK/1.0.0meta.7z diff --git a/tests/auto/installer/treename/settings.qrc b/tests/auto/installer/treename/settings.qrc index 3837d4440..eab771bee 100644 --- a/tests/auto/installer/treename/settings.qrc +++ b/tests/auto/installer/treename/settings.qrc @@ -21,6 +21,43 @@ <file>data/repository/componentC/1.0.0content.7z</file> <file>data/repository/componentD/1.0.0meta.7z</file> <file>data/repository/componentD/1.0.0content.7z</file> + <file>data/invalid_repository/Updates.xml</file> + + <file>data/repository_children/componentA/1.0.0content.7z</file> + <file>data/repository_children/componentA/1.0.0meta.7z</file> + <file>data/repository_children/componentA.subcomponent1/1.0.0content.7z</file> + <file>data/repository_children/componentA.subcomponent1/1.0.0meta.7z</file> + <file>data/repository_children/componentB/1.0.0content.7z</file> + <file>data/repository_children/componentB/1.0.0meta.7z</file> + <file>data/repository_children/componentE/1.0.0content.7z</file> + <file>data/repository_children/componentE/1.0.0meta.7z</file> + <file>data/repository_children/componentF/1.0.0content.7z</file> + <file>data/repository_children/componentF/1.0.0meta.7z</file> + <file>data/repository_children/componentF.subcomponent1/1.0.0content.7z</file> + <file>data/repository_children/componentF.subcomponent1/1.0.0meta.7z</file> + <file>data/repository_children/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z</file> + <file>data/repository_children/componentF.subcomponent1.subsubcomponent1/1.0.0meta.7z</file> + <file>data/repository_children/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z</file> + <file>data/repository_children/componentF.subcomponent1.subsubcomponent2/1.0.0meta.7z</file> + <file>data/repository_children/componentF.subcomponent2/1.0.0content.7z</file> + <file>data/repository_children/componentF.subcomponent2/1.0.0meta.7z</file> + <file>data/repository_children/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z</file> + <file>data/repository_children/componentF.subcomponent2.subsubcomponent1/1.0.0meta.7z</file> + <file>data/repository_children/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z</file> + <file>data/repository_children/componentF.subcomponent2.subsubcomponent2/1.0.0meta.7z</file> + <file>data/repository_children/componentH/1.0.0content.7z</file> + <file>data/repository_children/componentH/1.0.0meta.7z</file> + <file>data/repository_children/componentH.subcomponent1/1.0.0content.7z</file> + <file>data/repository_children/componentH.subcomponent1/1.0.0meta.7z</file> + <file>data/repository_children/componentI.subcomponent2/1.0.0content.7z</file> + <file>data/repository_children/componentI.subcomponent2/1.0.0meta.7z</file> + <file>data/repository_children/componentJ/1.0.0content.7z</file> + <file>data/repository_children/componentJ/1.0.0meta.7z</file> + <file>data/repository_children/componentJ.subcomponent1/1.0.0content.7z</file> + <file>data/repository_children/componentJ.subcomponent1/1.0.0meta.7z</file> + <file>data/repository_children/componentK/1.0.0content.7z</file> + <file>data/repository_children/componentK/1.0.0meta.7z</file> + <file>data/repository_children/Updates.xml</file> </qresource> </RCC> diff --git a/tests/auto/installer/treename/tst_treename.cpp b/tests/auto/installer/treename/tst_treename.cpp index 2945d499a..974bc08cc 100644 --- a/tests/auto/installer/treename/tst_treename.cpp +++ b/tests/auto/installer/treename/tst_treename.cpp @@ -44,10 +44,20 @@ private slots: void moveToSubItem(); void dependencyToMovedItem(); void autodependOnMovedItem(); - void moveToExistingItemAllowUnstableComponents(); + + void moveToExistingAllowUnstableComponents(); void moveToExistingItemNoUnstableComponents(); + void moveWithChildrenChildConflictsAllowUnstable(); + void moveWithChildrenChildConflictsNoUnstable(); + + void moveToRootWithChildren(); + void moveToSubItemWithChildren(); + void moveToAvailableParentItemWithChilren(); + void dependencyToMovedSubItem(); + void autoDependOnMovedSubItem(); void replaceComponentWithTreeName(); + void replaceComponentWithTreeNameMoveChildren(); void init(); void cleanup(); @@ -114,7 +124,7 @@ void tst_TreeName::autodependOnMovedItem() << "componentASub2.txt" << "componentD.txt"); } -void tst_TreeName::moveToExistingItemAllowUnstableComponents() +void tst_TreeName::moveToExistingAllowUnstableComponents() { QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit (m_installDir, ":///data/invalid_repository")); @@ -144,6 +154,233 @@ void tst_TreeName::replaceComponentWithTreeName() QVERIFY(!core->componentByName("componentE")); } +void tst_TreeName::replaceComponentWithTreeNameMoveChildren() +{ + QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/repository_children")); + + QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() << "componentM")); + QVERIFY(core->componentByName("componentM")->value(scTreeName).isEmpty()); + QVERIFY(!core->componentByName("componentL")); + + Component *component1 = core->componentByName("componentL.sub1"); + QCOMPARE(component1->treeName(), component1->name()); + + Component *component2 = core->componentByName("componentL.sub2"); + QCOMPARE(component2->treeName(), component2->name()); +} + +void tst_TreeName::moveWithChildrenChildConflictsAllowUnstable() +{ + QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/invalid_repository")); + core->settings().setAllowUnstableComponents(true); + + QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() << "componentD")); + Component *const component = core->componentByName("componentD.sub1"); + QVERIFY(component && component->isUnstable() && !component->isInstalled()); +} + +void tst_TreeName::moveWithChildrenChildConflictsNoUnstable() +{ + QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/invalid_repository")); + core->settings().setAllowUnstableComponents(false); + + QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() << "componentD")); + QVERIFY(!core->componentByName("componentD.sub1")); +} + +void tst_TreeName::moveToRootWithChildren() +{ + // componentF.subcomponent1 moved from sub item to root (FSub1ToRoot) + QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/repository_children")); + QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently( + QStringList() << "componentF.subcomponent1")); + const QList<Component*> installedComponents = core->orderedComponentsToInstall(); + + QCOMPARE(installedComponents.count(), 3); + + Component const *parent = installedComponents.at(0); + QCOMPARE(parent->name(), "componentF.subcomponent1"); + QCOMPARE(parent->treeName(), "FSub1ToRoot"); + QVERIFY(parent->value(scAutoTreeName).isEmpty()); + + Component const *child1 = installedComponents.at(1); + QCOMPARE(child1->name(), "componentF.subcomponent1.subsubcomponent1"); + QCOMPARE(child1->treeName(), "FSub1ToRoot.subsubcomponent1"); + QCOMPARE(child1->treeName(), child1->value(scAutoTreeName)); + + Component const *child2 = installedComponents.at(2); + QCOMPARE(child2->name(), "componentF.subcomponent1.subsubcomponent2"); + QCOMPARE(child2->treeName(), "FSub1ToRoot.subsubcomponent2"); + QCOMPARE(child2->treeName(), child2->value(scAutoTreeName)); + + QVERIFY(core->componentByName("componentF.subcomponent1")); + QVERIFY(!core->componentByName("FSub1ToRoot")); + QVERIFY(core->componentByName("componentF.subcomponent1.subsubcomponent1")); + QVERIFY(!core->componentByName("FSub1ToRoot.subsubcomponent1")); + QVERIFY(core->componentByName("componentF.subcomponent1.subsubcomponent2")); + QVERIFY(!core->componentByName("FSub1ToRoot.subsubcomponent2")); + + VerifyInstaller::verifyInstallerResources(m_installDir, + "componentF.subcomponent1", "1.0.0content.txt"); + VerifyInstaller::verifyInstallerResources(m_installDir, + "componentF.subcomponent1.subsubcomponent1", "1.0.0content.txt"); + VerifyInstaller::verifyInstallerResources(m_installDir, + "componentF.subcomponent1.subsubcomponent2", "1.0.0content.txt"); + VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" + << "installcontentF_1.txt" << "installcontentF_1_1.txt" << "installcontentF_1_2.txt"); +} + +void tst_TreeName::moveToSubItemWithChildren() +{ + // componentF.subcomponent2 moved under componentE (componentE.sub1) + QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/repository_children")); + QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently( + QStringList() << "componentF.subcomponent2")); + const QList<Component*> installedComponents = core->orderedComponentsToInstall(); + + QCOMPARE(installedComponents.count(), 4); + + Component const *parent = installedComponents.at(1); + QCOMPARE(parent->name(), "componentF.subcomponent2"); + QCOMPARE(parent->treeName(), "componentE.sub1"); + QVERIFY(parent->value(scAutoTreeName).isEmpty()); + + Component const *child1 = installedComponents.at(2); + QCOMPARE(child1->name(), "componentF.subcomponent2.subsubcomponent1"); + QCOMPARE(child1->treeName(), "componentE.sub1.subsubcomponent1"); + QCOMPARE(child1->treeName(), child1->value(scAutoTreeName)); + + Component const *child2 = installedComponents.at(3); + QCOMPARE(child2->name(), "componentF.subcomponent2.subsubcomponent2"); + QCOMPARE(child2->treeName(), "componentE.sub1.subsubcomponent2"); + QCOMPARE(child2->treeName(), child2->value(scAutoTreeName)); + + QVERIFY(core->componentByName("componentF.subcomponent2")); + QVERIFY(!core->componentByName("componentE.sub1")); + QVERIFY(core->componentByName("componentF.subcomponent2.subsubcomponent1")); + QVERIFY(!core->componentByName("componentE.sub1.subsubcomponent1")); + QVERIFY(core->componentByName("componentF.subcomponent2.subsubcomponent2")); + QVERIFY(!core->componentByName("componentE.sub1.subsubcomponent2")); + + VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); + VerifyInstaller::verifyInstallerResources(m_installDir, + "componentF.subcomponent2", "1.0.0content.txt"); + VerifyInstaller::verifyInstallerResources(m_installDir, + "componentF.subcomponent2.subsubcomponent1", "1.0.0content.txt"); + VerifyInstaller::verifyInstallerResources(m_installDir, + "componentF.subcomponent2.subsubcomponent2", "1.0.0content.txt"); + VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" + << "installcontentE.txt" << "installcontentF_2.txt" << "installcontentF_2_1.txt" + << "installcontentF_2_2.txt"); +} + +void tst_TreeName::moveToAvailableParentItemWithChilren() +{ + // componentH moved to componentI + QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/repository_children")); + QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently( + QStringList() << "componentH")); + const QList<Component*> installedComponents = core->orderedComponentsToInstall(); + + QCOMPARE(installedComponents.count(), 3); + + Component const *parent = installedComponents.at(0); + QCOMPARE(parent->name(), "componentH"); + QCOMPARE(parent->treeName(), "componentI"); + QVERIFY(parent->value(scAutoTreeName).isEmpty()); + + Component const *child1 = installedComponents.at(1); + QCOMPARE(child1->name(), "componentH.subcomponent1"); + QCOMPARE(child1->treeName(), "componentI.subcomponent1"); + QCOMPARE(child1->treeName(), child1->value(scAutoTreeName)); + + Component const *child2 = installedComponents.at(2); + QCOMPARE(child2->name(), "componentI.subcomponent2"); + QCOMPARE(child2->treeName(), child2->name()); + QVERIFY(child2->value(scAutoTreeName).isEmpty()); + + QVERIFY(core->componentByName("componentH")); + QVERIFY(!core->componentByName("componentI")); + QVERIFY(core->componentByName("componentH.subcomponent1")); + QVERIFY(!core->componentByName("componentI.subcomponent1")); + QVERIFY(core->componentByName("componentI.subcomponent2")); + + VerifyInstaller::verifyInstallerResources(m_installDir, "componentH", "1.0.0content.txt"); + VerifyInstaller::verifyInstallerResources(m_installDir, + "componentH.subcomponent1", "1.0.0content.txt"); + VerifyInstaller::verifyInstallerResources(m_installDir, + "componentI.subcomponent2", "1.0.0content.txt"); + VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" + << "installcontentH.txt" << "installcontentH_1.txt" << "installcontentI_2.txt"); +} + +void tst_TreeName::dependencyToMovedSubItem() +{ + // componentK has dependency to componentJ.subcomponent1, which has a parent with treename + QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/repository_children")); + QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently( + QStringList() << "componentK")); + const QList<Component*> installedComponents = core->orderedComponentsToInstall(); + + QCOMPARE(installedComponents.count(), 2); + + Component const *component1 = installedComponents.at(0); + QCOMPARE(component1->name(), "componentJ.subcomponent1"); + QCOMPARE(component1->treeName(), "componentJNew.subcomponent1"); + QCOMPARE(component1->treeName(), component1->value(scAutoTreeName)); + + Component const *component2 = installedComponents.at(1); + QCOMPARE(component2->name(), "componentK"); + QCOMPARE(component2->treeName(), component2->name()); + QVERIFY(component2->value(scAutoTreeName).isEmpty()); + + VerifyInstaller::verifyInstallerResources(m_installDir, + "componentJ.subcomponent1", "1.0.0content.txt"); + VerifyInstaller::verifyInstallerResources(m_installDir, "componentK", "1.0.0content.txt"); + VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" + << "installcontentJ_1.txt" << "installcontentK.txt"); +} + +void tst_TreeName::autoDependOnMovedSubItem() +{ + // componentB auto-depends on componentA.subcomponent1, which has a parent with treename + QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/repository_children")); + QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently( + QStringList() << "componentA.subcomponent1")); + const QList<Component*> installedComponents = core->orderedComponentsToInstall(); + + QCOMPARE(installedComponents.count(), 3); + + Component const *component1 = installedComponents.at(0); + QCOMPARE(component1->name(), "componentA"); + QCOMPARE(component1->treeName(), "componentANew"); + QVERIFY(component1->value(scAutoTreeName).isEmpty()); + + Component const *component2 = installedComponents.at(1); + QCOMPARE(component2->name(), "componentA.subcomponent1"); + QCOMPARE(component2->treeName(), "componentANew.subcomponent1"); + QCOMPARE(component2->treeName(), component2->value(scAutoTreeName)); + + Component const *component3 = installedComponents.at(2); + QCOMPARE(component3->name(), "componentB"); + QCOMPARE(component3->treeName(), component3->name()); + + VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); + VerifyInstaller::verifyInstallerResources(m_installDir, + "componentA.subcomponent1", "1.0.0content.txt"); + VerifyInstaller::verifyInstallerResources(m_installDir, "componentB", "1.0.0content.txt"); + VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" + << "installcontentA.txt" << "installcontentA_1.txt" << "installcontentB.txt"); +} + void tst_TreeName::init() { m_installDir = QInstaller::generateTemporaryFileName(); |