diff --git a/core/modules/update/tests/fixtures/release-history/semver_test.8.1.0-legacy-unsupported.xml b/core/modules/update/tests/fixtures/release-history/semver_test.8.1.0-legacy-unsupported.xml new file mode 100644 index 0000000000000000000000000000000000000000..34982e963d41cd9d54e309d7f8764204c4d89f9c --- /dev/null +++ b/core/modules/update/tests/fixtures/release-history/semver_test.8.1.0-legacy-unsupported.xml @@ -0,0 +1,238 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +This fixture is used by \Drupal\Tests\update\Functional\UpdateSemverContribTestBase. +It should be the same as semver_test.1.o.xml with the exception of the value of +the supported branches element. In this fixture legacy version sre not +supported. +--> +<project xmlns:dc="http://purl.org/dc/elements/1.1/"> +<title>Semver Test</title> +<short_name>semver_test</short_name> +<dc:creator>Drupal</dc:creator> +<supported_branches>8.0.,8.1.</supported_branches> +<project_status>published</project_status> +<link>http://example.com/project/semver_test</link> +<terms> + <term><name>Projects</name><value>Semver Test project</value></term> +</terms> + <releases> + <release> + <!-- This release is not in a supported branch; therefore it should not be recommended. --> + <name>Semver Test 8.2.0</name> + <version>8.2.0</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-2-0-release</release_link> + <download_link>http://example.com/semver_test-8-2-0.tar.gz</download_link> + <date>1584195300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.1.0</name> + <version>8.1.0</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-1-0-release</release_link> + <download_link>http://example.com/semver_test-8-1-0.tar.gz</download_link> + <date>1581603300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.1.0-beta1</name> + <version>8.1.0-beta1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-1-0-beta1-release</release_link> + <download_link>http://example.com/semver_test-8-1-0-beta1.tar.gz</download_link> + <date>1579011300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.1.0-alpha1</name> + <version>8.1.0-alpha1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-1-0-alpha1-release</release_link> + <download_link>http://example.com/semver_test-8-1-0-alpha1.tar.gz</download_link> + <date>1576419300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.0.3</name> + <version>8.0.3</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-0-3-release</release_link> + <download_link>http://example.com/semver_test-8-0-3.tar.gz</download_link> + <date>1573827300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + <term><name>Release type</name><value>Unsupported</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.0.2</name> + <version>8.0.2</version> + <status>unpublished</status> + <release_link>http://example.com/semver_test-8-0-2-release</release_link> + <download_link>http://example.com/semver_test-8-0-2.tar.gz</download_link> + <date>1571235300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.0.1</name> + <version>8.0.1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-0-1-release</release_link> + <download_link>http://example.com/semver_test-8-0-1.tar.gz</download_link> + <date>1568643300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.0.1-beta1</name> + <version>8.0.1-beta1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-0-1-beta1-release</release_link> + <download_link>http://example.com/semver_test-8-0-1-beta1.tar.gz</download_link> + <date>1566051300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.0.1-alpha1</name> + <version>8.0.1-alpha1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-0-1-alpha1-release</release_link> + <download_link>http://example.com/semver_test-8-0-1-alpha1.tar.gz</download_link> + <date>1563459300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.0.0</name> + <version>8.0.0</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-0-0-release</release_link> + <download_link>http://example.com/semver_test-8-0-0.tar.gz</download_link> + <date>1560867300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.0.0-beta1</name> + <version>8.0.0-beta1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-0-0-beta1-release</release_link> + <download_link>http://example.com/semver_test-8-0-0-beta1.tar.gz</download_link> + <date>1558275300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.0.0-alpha1</name> + <version>8.0.0-alpha1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-0-0-alpha1-release</release_link> + <download_link>http://example.com/semver_test-8-0-0-alpha1.tar.gz</download_link> + <date>1555683300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-7.1</name> + <version>8.x-7.1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-1-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-7.1-beta1</name> + <version>8.x-7.1-beta1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-1-beta1-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-1-beta1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-7.1-alpha1</name> + <version>8.x-7.1-alpha1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-1-alpha1-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-1-alpha1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-7.0</name> + <version>8.x-7.0</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-0-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-0.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-7.0-beta1</name> + <version>8.x-7.0-beta1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-0-beta1-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-0-beta1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-7.0-alpha1</name> + <version>8.x-7.0-alpha1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-0-alpha1-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-0-alpha1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + </releases> +</project> diff --git a/core/modules/update/tests/fixtures/release-history/semver_test.8.1.0.xml b/core/modules/update/tests/fixtures/release-history/semver_test.8.1.0.xml index 7f29b0428a1dea3881bd67ba2555e33a5512a6c9..f9e3c159a3560483af746789a87c6f084a54fcaa 100644 --- a/core/modules/update/tests/fixtures/release-history/semver_test.8.1.0.xml +++ b/core/modules/update/tests/fixtures/release-history/semver_test.8.1.0.xml @@ -3,7 +3,7 @@ <title>Semver Test</title> <short_name>semver_test</short_name> <dc:creator>Drupal</dc:creator> -<supported_branches>8.0.,8.1.</supported_branches> +<supported_branches>8.x-7.,8.0.,8.1.</supported_branches> <project_status>published</project_status> <link>http://example.com/project/semver_test</link> <terms> @@ -168,5 +168,83 @@ <term><name>Release type</name><value>Bug fixes</value></term> </terms> </release> +<release> + <name>Semver Test 8.x-7.1</name> + <version>8.x-7.1</version> + <tag>SEMVER_TEST-8-x-7-1</tag> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-1-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-7.1-beta1</name> + <version>8.x-7.1-beta1</version> + <tag>SEMVER_TEST-8-x-7-1-beta1</tag> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-1-beta1-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-1-beta1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-7.1-alpha1</name> + <version>8.x-7.1-alpha1</version> + <tag>SEMVER_TEST-8-x-7-1-alpha1</tag> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-1-alpha1-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-1-alpha1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-7.0</name> + <version>8.x-7.0</version> + <tag>SEMVER_TEST-8-x-7-0</tag> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-0-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-0.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-7.0-beta1</name> + <version>8.x-7.0-beta1</version> + <tag>SEMVER_TEST-8-x-7-0-beta1</tag> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-0-beta1-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-0-beta1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-7.0-alpha1</name> + <version>8.x-7.0-alpha1</version> + <tag>SEMVER_TEST-8-x-7-0-alpha1</tag> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-7-0-alpha1-release</release_link> + <download_link>http://example.com/semver_test-8-x-7-0-alpha1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> </releases> </project> diff --git a/core/modules/update/tests/fixtures/release-history/semver_test.9.1.0.xml b/core/modules/update/tests/fixtures/release-history/semver_test.9.1.0.xml new file mode 100644 index 0000000000000000000000000000000000000000..c234cb292e0053fb304e832809914d9aec718e6a --- /dev/null +++ b/core/modules/update/tests/fixtures/release-history/semver_test.9.1.0.xml @@ -0,0 +1,237 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +This fixture is used by \Drupal\Tests\update\Functional\UpdateSemverContribTestBase. + It should be the same as semver_test.1.o.xml with the exception the major + version numbers. In this file the major versions are 8 an 9 instead of 7 and 8. +--> +<project xmlns:dc="http://purl.org/dc/elements/1.1/"> +<title>Semver Test</title> +<short_name>semver_test</short_name> +<dc:creator>Drupal</dc:creator> +<supported_branches>8.x-8.,9.0.,9.1.</supported_branches> +<project_status>published</project_status> +<link>http://example.com/project/semver_test</link> + <terms> + <term><name>Projects</name><value>Semver Test project</value></term> + </terms> +<releases> + <release> + <!-- This release is not in a supported branch; therefore it should not be recommended. --> + <name>Semver Test 9.2.0</name> + <version>9.2.0</version> + <status>published</status> + <release_link>http://example.com/semver_test-9-2-0-release</release_link> + <download_link>http://example.com/semver_test-9-2-0.tar.gz</download_link> + <date>1584195300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 9.1.0</name> + <version>9.1.0</version> + <status>published</status> + <release_link>http://example.com/semver_test-9-1-0-release</release_link> + <download_link>http://example.com/semver_test-9-1-0.tar.gz</download_link> + <date>1581603300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 9.1.0-beta1</name> + <version>9.1.0-beta1</version> + <status>published</status> + <release_link>http://example.com/semver_test-9-1-0-beta1-release</release_link> + <download_link>http://example.com/semver_test-9-1-0-beta1.tar.gz</download_link> + <date>1579011300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 9.1.0-alpha1</name> + <version>9.1.0-alpha1</version> + <status>published</status> + <release_link>http://example.com/semver_test-9-1-0-alpha1-release</release_link> + <download_link>http://example.com/semver_test-9-1-0-alpha1.tar.gz</download_link> + <date>1576419300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 9.0.3</name> + <version>9.0.3</version> + <status>published</status> + <release_link>http://example.com/semver_test-9-0-3-release</release_link> + <download_link>http://example.com/semver_test-9-0-3.tar.gz</download_link> + <date>1573827300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + <term><name>Release type</name><value>Unsupported</value></term> + </terms> + </release> + <release> + <name>Semver Test 9.0.2</name> + <version>9.0.2</version> + <status>unpublished</status> + <release_link>http://example.com/semver_test-9-0-2-release</release_link> + <download_link>http://example.com/semver_test-9-0-2.tar.gz</download_link> + <date>1571235300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 9.0.1</name> + <version>9.0.1</version> + <status>published</status> + <release_link>http://example.com/semver_test-9-0-1-release</release_link> + <download_link>http://example.com/semver_test-9-0-1.tar.gz</download_link> + <date>1568643300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 9.0.1-beta1</name> + <version>9.0.1-beta1</version> + <status>published</status> + <release_link>http://example.com/semver_test-9-0-1-beta1-release</release_link> + <download_link>http://example.com/semver_test-9-0-1-beta1.tar.gz</download_link> + <date>1566051300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 9.0.1-alpha1</name> + <version>9.0.1-alpha1</version> + <status>published</status> + <release_link>http://example.com/semver_test-9-0-1-alpha1-release</release_link> + <download_link>http://example.com/semver_test-9-0-1-alpha1.tar.gz</download_link> + <date>1563459300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 9.0.0</name> + <version>9.0.0</version> + <status>published</status> + <release_link>http://example.com/semver_test-9-0-0-release</release_link> + <download_link>http://example.com/semver_test-9-0-0.tar.gz</download_link> + <date>1560867300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 9.0.0-beta1</name> + <version>9.0.0-beta1</version> + <status>published</status> + <release_link>http://example.com/semver_test-9-0-0-beta1-release</release_link> + <download_link>http://example.com/semver_test-9-0-0-beta1.tar.gz</download_link> + <date>1558275300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 9.0.0-alpha1</name> + <version>9.0.0-alpha1</version> + <status>published</status> + <release_link>http://example.com/semver_test-9-0-0-alpha1-release</release_link> + <download_link>http://example.com/semver_test-9-0-0-alpha1.tar.gz</download_link> + <date>1555683300</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> +<release> + <name>Semver Test 8.x-8.1</name> + <version>8.x-8.1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-8-1-release</release_link> + <download_link>http://example.com/semver_test-8-x-8-1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-8.1-beta1</name> + <version>8.x-8.1-beta1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-8-1-beta1-release</release_link> + <download_link>http://example.com/semver_test-8-x-8-1-beta1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-8.1-alpha1</name> + <version>8.x-8.1-alpha1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-8-1-alpha1-release</release_link> + <download_link>http://example.com/semver_test-8-x-8-1-alpha1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-8.0</name> + <version>8.x-8.0</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-8-0-release</release_link> + <download_link>http://example.com/semver_test-8-x-8-0.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-8.0-beta1</name> + <version>8.x-8.0-beta1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-8-0-beta1-release</release_link> + <download_link>http://example.com/semver_test-8-x-8-0-beta1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> + <release> + <name>Semver Test 8.x-8.0-alpha1</name> + <version>8.x-8.0-alpha1</version> + <status>published</status> + <release_link>http://example.com/semver_test-8-x-8-0-alpha1-release</release_link> + <download_link>http://example.com/semver_test-8-x-8-0-alpha1.tar.gz</download_link> + <date>1250424521</date> + <terms> + <term><name>Release type</name><value>New features</value></term> + <term><name>Release type</name><value>Bug fixes</value></term> + </terms> + </release> +</releases> +</project> diff --git a/core/modules/update/tests/src/Functional/UpdateSemverContribTestBase.php b/core/modules/update/tests/src/Functional/UpdateSemverContribTestBase.php index 2b8b257543ddca733ed22843d3dcb64432147c60..032daf3ae9d82d3264984bb5f1419b2856e851a3 100644 --- a/core/modules/update/tests/src/Functional/UpdateSemverContribTestBase.php +++ b/core/modules/update/tests/src/Functional/UpdateSemverContribTestBase.php @@ -52,4 +52,69 @@ protected function setProjectInstalledVersion($version) { $this->mockDefaultExtensionsInfo(['version' => '8.0.0']); } + /** + * Tests updates from legacy versions to the semver versions. + */ + public function testUpdatesLegacyToSemver(): void { + // Test cases where the legacy branch is in the XML 'supported_branches' and + // when it is not. + foreach ([TRUE, FALSE] as $legacy_supported) { + // Test 2 legacy majors. + foreach ([7, 8] as $legacy_major) { + $semver_major = $legacy_major + 1; + $installed_versions = [ + "8.x-$legacy_major.0-alpha1", + "8.x-$legacy_major.0-beta1", + "8.x-$legacy_major.0", + "8.x-$legacy_major.1-alpha1", + "8.x-$legacy_major.1-beta1", + "8.x-$legacy_major.1", + ]; + foreach ($installed_versions as $installed_version) { + $this->setProjectInstalledVersion($installed_version); + if ($legacy_supported) { + $fixture = $legacy_major === 7 ? '8.1.0' : '9.1.0'; + } + else { + if ($legacy_major === 8) { + continue; + } + $fixture = '8.1.0-legacy-unsupported'; + } + + $this->refreshUpdateStatus([$this->updateProject => $fixture]); + $this->assertUpdateTableTextNotContains('Security update required!'); + $this->assertSession()->elementTextContains('css', $this->updateTableLocator . " .project-update__title", $installed_version); + if ($legacy_supported) { + // All installed versions should indicate that there is an update + // available for the next major version of the module. + // '$legacy_major.1.0' is shown for the next major version because + // it is the latest full release for that major. + // @todo Determine if both 8.0.0 and 8.0.1 should be expected as + // "Also available" releases in + // https://www.drupal.org/project/node/3100115. + $this->assertVersionUpdateLinks('Also available:', "$semver_major.1.0"); + if ($installed_version === "8.x-$legacy_major.1") { + $this->assertUpdateTableTextContains('Up to date'); + $this->assertUpdateTableTextNotContains('Update available'); + } + else { + $this->assertUpdateTableTextNotContains('Up to date'); + $this->assertUpdateTableTextContains('Update available'); + // All installed versions besides 8.x-$legacy_major.1 should + // recommend 8.x-$legacy_major.1 because it is the latest full + // release for the major. + $this->assertVersionUpdateLinks('Recommended version:', "8.x-$legacy_major.1"); + } + } + else { + // If '8.x-7.' is not in the XML 'supported_branches' value then the + // latest release for the next major should always be recommended. + $this->assertVersionUpdateLinks('Recommended version:', "$semver_major.1.0"); + } + } + } + } + } + }