first commit
This commit is contained in:
Binary file not shown.
+80
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.,8.x-2.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-2.0</name>
|
||||
<version>8.x-2.0</version>
|
||||
<tag>8.x-2.0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0.tar.gz</download_link>
|
||||
<date>1250422521</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>aaa_update_test 8.x-2.0-beta1</name>
|
||||
<version>8.x-2.0-beta1</version>
|
||||
<tag>8.x-2.0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0-beta1.tar.gz</download_link>
|
||||
<date>1250422521</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>aaa_update_test 8.x-2.0-alpha1</name>
|
||||
<version>8.x-2.0-alpha1</version>
|
||||
<tag>8.x-2.0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
|
||||
<date>1250422521</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>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>8.x-1.1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
|
||||
<date>1250404525</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>8.x-1.0</tag>
|
||||
<status>unpublished</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
|
||||
<date>1250404521</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>
|
||||
+86
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This XML file is the exact same as the file aaa_update_test.1_0-supported.xml
|
||||
except 'supported_branches' in this file does not contain the '8.x-1.' branch.
|
||||
Therefore, all the releases that start with '8.x-1.' are in an unsupported
|
||||
branch.
|
||||
-->
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-2.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-2.0</name>
|
||||
<version>8.x-2.0</version>
|
||||
<tag>8.x-2.0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0.tar.gz</download_link>
|
||||
<date>1250422521</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>aaa_update_test 8.x-2.0-beta1</name>
|
||||
<version>8.x-2.0-beta1</version>
|
||||
<tag>8.x-2.0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0-beta1.tar.gz</download_link>
|
||||
<date>1250422521</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>aaa_update_test 8.x-2.0-alpha1</name>
|
||||
<version>8.x-2.0-alpha1</version>
|
||||
<tag>8.x-2.0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
|
||||
<date>1250422521</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>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>8.x-1.1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
|
||||
<date>1250404525</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>8.x-1.0</tag>
|
||||
<status>unpublished</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
|
||||
<date>1250404521</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>
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>aaa_update_test 8.x-3.0</name>
|
||||
<version>8.x-3.0</version>
|
||||
<tag>DRUPAL-8--3-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
|
||||
<date>1250426521</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.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>
|
||||
</releases>
|
||||
</project>
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>aaa_update_test 8.x-3.0</name>
|
||||
<version>8.x-3.0</version>
|
||||
<tag>DRUPAL-8--3-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
|
||||
<date>1250426521</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>aaa_update_test 8.x-1.1-alpha1</name>
|
||||
<version>8.x-1.1-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
|
||||
<date>1073781824</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>
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>aaa_update_test 8.x-3.0</name>
|
||||
<version>8.x-3.0</version>
|
||||
<tag>DRUPAL-8--3-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
|
||||
<date>1250426521</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>aaa_update_test 8.x-1.1-beta1</name>
|
||||
<version>8.x-1.1-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.1-alpha1</name>
|
||||
<version>8.x-1.1-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
|
||||
<date>1073781824</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>
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>aaa_update_test 8.x-3.0</name>
|
||||
<version>8.x-3.0</version>
|
||||
<tag>DRUPAL-8--3-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
|
||||
<date>1250426521</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>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.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>aaa_update_test 8.x-1.1-beta1</name>
|
||||
<version>8.x-1.1-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.1-alpha1</name>
|
||||
<version>8.x-1.1-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
|
||||
<date>1250404521</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>
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>aaa_update_test 8.x-3.0</name>
|
||||
<version>8.x-3.0</version>
|
||||
<tag>DRUPAL-8--3-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
|
||||
<date>1250426521</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>aaa_update_test 8.x-1.2-alpha1</name>
|
||||
<version>8.x-1.2-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
|
||||
<date>1250413521</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>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.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>aaa_update_test 8.x-1.1-beta1</name>
|
||||
<version>8.x-1.1-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.1-alpha1</name>
|
||||
<version>8.x-1.1-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
|
||||
<date>1250404521</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>
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>aaa_update_test 8.x-3.0</name>
|
||||
<version>8.x-3.0</version>
|
||||
<tag>DRUPAL-8--3-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
|
||||
<date>1250426521</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>aaa_update_test 8.x-1.2-beta1</name>
|
||||
<version>8.x-1.2-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
|
||||
<date>1250412521</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>aaa_update_test 8.x-1.2-alpha1</name>
|
||||
<version>8.x-1.2-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
|
||||
<date>1250413521</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>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.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>aaa_update_test 8.x-1.1-beta1</name>
|
||||
<version>8.x-1.1-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.1-alpha1</name>
|
||||
<version>8.x-1.1-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
|
||||
<date>1250404521</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>
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>aaa_update_test 8.x-3.0</name>
|
||||
<version>8.x-3.0</version>
|
||||
<tag>DRUPAL-8--3-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
|
||||
<date>1250426521</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>aaa_update_test 8.x-1.2</name>
|
||||
<version>8.x-1.2</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
|
||||
<date>1250421521</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>aaa_update_test 8.x-1.2-beta1</name>
|
||||
<version>8.x-1.2-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
|
||||
<date>1250412521</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>aaa_update_test 8.x-1.2-alpha1</name>
|
||||
<version>8.x-1.2-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
|
||||
<date>1250413521</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>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.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>aaa_update_test 8.x-1.1-beta1</name>
|
||||
<version>8.x-1.1-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.1-alpha1</name>
|
||||
<version>8.x-1.1-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
|
||||
<date>1250404521</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>
|
||||
+132
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.,8.x-2.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>aaa_update_test 8.x-3.0</name>
|
||||
<version>8.x-3.0</version>
|
||||
<tag>DRUPAL-8--3-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
|
||||
<date>1250426521</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>aaa_update_test 8.x-2.0-alpha1</name>
|
||||
<version>8.x-2.0-alpha1</version>
|
||||
<tag>DRUPAL-8--2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
|
||||
<date>1250422521</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>aaa_update_test 8.x-1.2</name>
|
||||
<version>8.x-1.2</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
|
||||
<date>1250421521</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>aaa_update_test 8.x-1.2-beta1</name>
|
||||
<version>8.x-1.2-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
|
||||
<date>1250412521</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>aaa_update_test 8.x-1.2-alpha1</name>
|
||||
<version>8.x-1.2-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
|
||||
<date>1250413521</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>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.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>aaa_update_test 8.x-1.1-beta1</name>
|
||||
<version>8.x-1.1-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.1-alpha1</name>
|
||||
<version>8.x-1.1-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
|
||||
<date>1250404521</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>
|
||||
+145
@@ -0,0 +1,145 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.,8.x-2.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>aaa_update_test 8.x-3.0</name>
|
||||
<version>8.x-3.0</version>
|
||||
<tag>DRUPAL-8--3-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
|
||||
<date>1250426521</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>aaa_update_test 8.x-2.0-beta1</name>
|
||||
<version>8.x-2.0-beta1</version>
|
||||
<tag>DRUPAL-8--2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0-beta1.tar.gz</download_link>
|
||||
<date>1250442521</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>aaa_update_test 8.x-2.0-alpha1</name>
|
||||
<version>8.x-2.0-alpha1</version>
|
||||
<tag>DRUPAL-8--2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
|
||||
<date>1250422521</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>aaa_update_test 8.x-1.2</name>
|
||||
<version>8.x-1.2</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
|
||||
<date>1250421521</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>aaa_update_test 8.x-1.2-beta1</name>
|
||||
<version>8.x-1.2-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
|
||||
<date>1250412521</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>aaa_update_test 8.x-1.2-alpha1</name>
|
||||
<version>8.x-1.2-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
|
||||
<date>1250413521</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>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.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>aaa_update_test 8.x-1.1-beta1</name>
|
||||
<version>8.x-1.1-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.1-alpha1</name>
|
||||
<version>8.x-1.1-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
|
||||
<date>1250404521</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>
|
||||
+158
@@ -0,0 +1,158 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.,8.x-2.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>aaa_update_test 8.x-3.0</name>
|
||||
<version>8.x-3.0</version>
|
||||
<tag>DRUPAL-8--3-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
|
||||
<date>1250426521</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>aaa_update_test 8.x-2.0</name>
|
||||
<version>8.x-2.0</version>
|
||||
<tag>DRUPAL-8--2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0.tar.gz</download_link>
|
||||
<date>1250422521</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>aaa_update_test 8.x-2.0-beta1</name>
|
||||
<version>8.x-2.0-beta1</version>
|
||||
<tag>DRUPAL-8--2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0-beta1.tar.gz</download_link>
|
||||
<date>1250422521</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>aaa_update_test 8.x-2.0-alpha1</name>
|
||||
<version>8.x-2.0-alpha1</version>
|
||||
<tag>DRUPAL-8--2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
|
||||
<date>1250422521</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>aaa_update_test 8.x-1.2</name>
|
||||
<version>8.x-1.2</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
|
||||
<date>1250421521</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>aaa_update_test 8.x-1.2-beta1</name>
|
||||
<version>8.x-1.2-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
|
||||
<date>1250412521</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>aaa_update_test 8.x-1.2-alpha1</name>
|
||||
<version>8.x-1.2-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
|
||||
<date>1250413521</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>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.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>aaa_update_test 8.x-1.1-beta1</name>
|
||||
<version>8.x-1.1-beta1</version>
|
||||
<tag>DRUPAL-8--1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.1-alpha1</name>
|
||||
<version>8.x-1.1-alpha1</version>
|
||||
<tag>DRUPAL-8--1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
|
||||
<date>1250414521</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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
|
||||
<date>1250404521</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>
|
||||
+86
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<api_version>8.x</api_version>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.3-beta1</name>
|
||||
<version>8.x-1.3-beta1</version>
|
||||
<tag>DRUPAL-8--1-3-beta1</tag>
|
||||
<core_compatibility>8.0.0 || 8.1.1</core_compatibility>
|
||||
<version_major>1</version_major>
|
||||
<version_patch>3</version_patch>
|
||||
<version_extra>beta1</version_extra>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-3-beta1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-3-beta1.tar.gz</download_link>
|
||||
<date>1250624521</date>
|
||||
<mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
|
||||
<filesize>1073751924</filesize>
|
||||
<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>aaa_update_test 8.x-1.2</name>
|
||||
<version>8.x-1.2</version>
|
||||
<tag>DRUPAL-8--1-2</tag>
|
||||
<core_compatibility>^8</core_compatibility>
|
||||
<version_major>1</version_major>
|
||||
<version_patch>2</version_patch>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-2.tar.gz</download_link>
|
||||
<date>1250424521</date>
|
||||
<mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
|
||||
<filesize>1073741824</filesize>
|
||||
<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>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<version_major>1</version_major>
|
||||
<version_patch>1</version_patch>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-1.tar.gz</download_link>
|
||||
<date>1250424521</date>
|
||||
<mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
|
||||
<filesize>1073741824</filesize>
|
||||
<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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<version_major>1</version_major>
|
||||
<version_patch>0</version_patch>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-0.tar.gz</download_link>
|
||||
<date>1250424521</date>
|
||||
<mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
|
||||
<filesize>1073741824</filesize>
|
||||
<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>
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.,8.x-2.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-2.2</name>
|
||||
<version>8.x-2.2</version>
|
||||
<tag>8.x-2.2</tag>
|
||||
<core_compatibility>^8.1.1</core_compatibility>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-2-2.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>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.2</name>
|
||||
<version>8.x-1.2</version>
|
||||
<tag>8.x-2.2</tag>
|
||||
<core_compatibility>^8.1.0</core_compatibility>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-2.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>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>8.x-2.2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<error>No release history was found for the requested project (aaa_update_test).</error>
|
||||
Vendored
+57
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.2</name>
|
||||
<version>8.x-1.2</version>
|
||||
<tag>DRUPAL-8--1-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-2.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>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-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>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.2</name>
|
||||
<version>8.x-1.2</version>
|
||||
<tag>DRUPAL-8--1-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-2.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>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
Vendored
+132
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.,8.x-2.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-3.0-beta2</name>
|
||||
<version>8.x-3.0-beta2</version>
|
||||
<tag>8.x-3.0-beta2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-beta2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-3-0-beta2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Beta releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-3.0-beta1</name>
|
||||
<version>8.x-3.0-beta1</version>
|
||||
<tag>8.x-3.0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-3-0-beta1</release_link>
|
||||
<download_link>http://example.com/aaa_update_test--8-x-3-0-beta1.tar.gz</download_link>
|
||||
<date>1533270485</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Beta releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-2.2</name>
|
||||
<version>8.x-2.2</version>
|
||||
<tag>DRUPAL-8--2-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-2-2.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>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-2.1</name>
|
||||
<version>8.x-2.1</version>
|
||||
<tag>DRUPAL-8--2-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-2-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>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-2.0</name>
|
||||
<version>8.x-2.0</version>
|
||||
<tag>DRUPAL-8--2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-2-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.2</name>
|
||||
<version>8.x-1.2</version>
|
||||
<tag>DRUPAL-8--1-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-2.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>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
Vendored
+96
@@ -0,0 +1,96 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>AAA Update test</title>
|
||||
<short_name>aaa_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.,8.x-2.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/aaa_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-2.2</name>
|
||||
<version>8.x-2.2</version>
|
||||
<tag>DRUPAL-8--2-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-2-2.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>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-2.1</name>
|
||||
<version>8.x-2.1</version>
|
||||
<tag>DRUPAL-8--2-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-2-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>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-2.0</name>
|
||||
<version>8.x-2.0</version>
|
||||
<tag>DRUPAL-8--2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-2-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>aaa_update_test 8.x-1.2</name>
|
||||
<version>8.x-1.2</version>
|
||||
<tag>DRUPAL-8--1-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-2.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>aaa_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-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>aaa_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-8--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/aaa_update_test-8-x-1-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>
|
||||
</releases>
|
||||
</project>
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>BBB Update test</title>
|
||||
<short_name>bbb_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/bbb_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>bbb_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-7--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/bbb_update_test-7-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/bbb_update_test-8.x-1.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>
|
||||
</releases>
|
||||
</project>
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This fixture is used by Drupal\Tests\update\Functional\UpdateManagerUpdateTest.
|
||||
|
||||
It contains 2 releases, 8.x-1.0 (which is the currently installed version) and
|
||||
8.x-1.1, which is the only available update.
|
||||
|
||||
To ensure we've got test coverage for the case where the '<core_compatibility>'
|
||||
tag is not defined at all, this fixture does not include that value.
|
||||
-->
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>BBB Update test</title>
|
||||
<short_name>bbb_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/bbb_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>bbb_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>8.x-1.1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/bbb_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/bbb_update_test-8.x-1.1.tar.gz</download_link>
|
||||
<date>1250444521</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>bbb_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>8.x-1.0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/bbb_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/bbb_update_test-8.x-1.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>
|
||||
</releases>
|
||||
</project>
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This fixture is used by Drupal\Tests\update\Functional\UpdateManagerUpdateTest.
|
||||
|
||||
It contains 3 releases:
|
||||
- 8.x-1.0: The currently installed version in the test scenarios.
|
||||
- 8.x-1.1: An available update that does not specify '<core_compatibility>'.
|
||||
- 8.x-1.2: An available update that uses '<core_compatibility>' to require at
|
||||
least Drupal core version 8.1.0. Since the currently installed Drupal core
|
||||
for the tests is 8.0.0, this release will be flagged as 'Not compatible'.
|
||||
-->
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>BBB Update test</title>
|
||||
<short_name>bbb_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/bbb_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>bbb_update_test 8.x-1.2</name>
|
||||
<version>8.x-1.2</version>
|
||||
<tag>8.x-1.2</tag>
|
||||
<core_compatibility>^8.1.0</core_compatibility>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/bbb_update_test-8-x-1-2-release</release_link>
|
||||
<download_link>http://example.com/bbb_update_test-8.x-1.2.tar.gz</download_link>
|
||||
<date>1250445521</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>bbb_update_test 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>8.x-1.1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/bbb_update_test-8-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/bbb_update_test-8.x-1.1.tar.gz</download_link>
|
||||
<date>1250444521</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>bbb_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>8.x-1.0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/bbb_update_test-8-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/bbb_update_test-8.x-1.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>
|
||||
</releases>
|
||||
</project>
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>CCC Update test</title>
|
||||
<short_name>ccc_update_test</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/ccc_update_test</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>ccc_update_test 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-7--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/ccc_update_test-7-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/ccc_update_test-8.x-1.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>
|
||||
</releases>
|
||||
</project>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.0.1-beta1</name>
|
||||
<version>8.0.1-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1-beta1</name>
|
||||
<version>8.0.1-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.1.0-alpha1</name>
|
||||
<version>8.1.0-alpha1</version>
|
||||
<tag>DRUPAL-8-1-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1-beta1</name>
|
||||
<version>8.0.1-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.1.0-beta1</name>
|
||||
<version>8.1.0-beta1</version>
|
||||
<tag>DRUPAL-8-1-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-alpha1</name>
|
||||
<version>8.1.0-alpha1</version>
|
||||
<tag>DRUPAL-8-1-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1-beta1</name>
|
||||
<version>8.0.1-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
+163
@@ -0,0 +1,163 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This XML file is the exact same as the file drupal.1.xml except
|
||||
'supported_branches' in this file does not contain the '8.0.' branch. Therefore,
|
||||
all the releases that start with '8.0.' are in an unsupported branch.
|
||||
-->
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>8.1.0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-beta1</name>
|
||||
<version>8.1.0-beta1</version>
|
||||
<tag>8.1.0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-alpha1</name>
|
||||
<version>8.1.0-alpha1</version>
|
||||
<tag>8.1.0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.3</name>
|
||||
<version>8.0.3</version>
|
||||
<tag>8.0.3</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-3-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-3.tar.gz</download_link>
|
||||
<date>1250424585</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>Drupal 8.0.2</name>
|
||||
<version>8.0.2</version>
|
||||
<tag>8.0.2</tag>
|
||||
<status>unpublished</status>
|
||||
<release_link>http://example.com/drupal-8-0-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>8.0.1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1-beta1</name>
|
||||
<version>8.0.1-beta1</version>
|
||||
<tag>8.0.1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>8.0.1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>8.0.0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>8.0.0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>8.0.0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
@@ -0,0 +1,172 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-beta1</name>
|
||||
<version>8.1.0-beta1</version>
|
||||
<tag>DRUPAL-8-1-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-alpha1</name>
|
||||
<version>8.1.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.3</name>
|
||||
<version>8.0.3</version>
|
||||
<tag>8.0.3</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-3-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-3.tar.gz</download_link>
|
||||
<date>1250424585</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>Drupal 8.0.2</name>
|
||||
<version>8.0.2</version>
|
||||
<tag>8.0.2</tag>
|
||||
<status>unpublished</status>
|
||||
<release_link>http://example.com/drupal-8-0-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1-beta1</name>
|
||||
<version>8.0.1-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
Vendored
+144
@@ -0,0 +1,144 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 8.1.1-alpha1</name>
|
||||
<version>8.1.1-alpha1</version>
|
||||
<tag>DRUPAL-8-1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-beta1</name>
|
||||
<version>8.1.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-alpha1</name>
|
||||
<version>8.1.0-alpha1</version>
|
||||
<tag>DRUPAL-8-1-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1-beta1</name>
|
||||
<version>8.0.1-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
+158
@@ -0,0 +1,158 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.1.1-alpha1</name>
|
||||
<version>8.1.1-alpha1</version>
|
||||
<tag>DRUPAL-8-1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-beta1</name>
|
||||
<version>8.1.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-alpha1</name>
|
||||
<version>8.1.0-alpha1</version>
|
||||
<tag>DRUPAL-8-1-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1-beta1</name>
|
||||
<version>8.0.1-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
@@ -0,0 +1,171 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.1.1-beta1</name>
|
||||
<version>8.1.1-beta1</version>
|
||||
<tag>DRUPAL-8-1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1-beta1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.1-alpha1</name>
|
||||
<version>8.1.1-alpha1</version>
|
||||
<tag>DRUPAL-8-1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-beta1</name>
|
||||
<version>8.1.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-alpha1</name>
|
||||
<version>8.1.0-alpha1</version>
|
||||
<tag>DRUPAL-8-1-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1-beta1</name>
|
||||
<version>8.0.1-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
+170
@@ -0,0 +1,170 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 8.1.1</name>
|
||||
<version>8.1.1</version>
|
||||
<tag>DRUPAL-8-1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.1-beta1</name>
|
||||
<version>8.1.1-beta1</version>
|
||||
<tag>DRUPAL-8-1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1-beta1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.1-alpha1</name>
|
||||
<version>8.1.1-alpha1</version>
|
||||
<tag>DRUPAL-8-1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-beta1</name>
|
||||
<version>8.1.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-alpha1</name>
|
||||
<version>8.1.0-alpha1</version>
|
||||
<tag>DRUPAL-8-1-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1-beta1</name>
|
||||
<version>8.0.1-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
@@ -0,0 +1,184 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<!-- This release is not in a supported branch; therefore it should not be recommended. -->
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250425521</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>Drupal 8.1.1</name>
|
||||
<version>8.1.1</version>
|
||||
<tag>DRUPAL-8-1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.1-beta1</name>
|
||||
<version>8.1.1-beta1</version>
|
||||
<tag>DRUPAL-8-1-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1-beta1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.1-alpha1</name>
|
||||
<version>8.1.1-alpha1</version>
|
||||
<tag>DRUPAL-8-1-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-beta1</name>
|
||||
<version>8.1.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.1.0-alpha1</name>
|
||||
<version>8.1.0-alpha1</version>
|
||||
<tag>DRUPAL-8-1-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.1-beta1</name>
|
||||
<version>8.0.1-beta1</version>
|
||||
<tag>DRUPAL-8-0-1-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.1-alpha1</name>
|
||||
<version>8.0.1-alpha1</version>
|
||||
<tag>DRUPAL-8-0-1-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-beta1</name>
|
||||
<version>8.0.0-beta1</version>
|
||||
<tag>DRUPAL-8-0-0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.0-alpha1</name>
|
||||
<version>8.0.0-alpha1</version>
|
||||
<tag>DRUPAL-8-0-0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>9.0.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 9.0.0</name>
|
||||
<version>9.0.0</version>
|
||||
<tag>DRUPAL-9-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-9-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-9-0-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>
|
||||
</releases>
|
||||
</project>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>Drupal 8.0.x-dev</name>
|
||||
<version>8.0.x-dev</version>
|
||||
<tag>DRUPAL-8-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-x-dev-release</release_link>
|
||||
<download_link>http://example.com/drupal-8.0.x-dev.tar.gz</download_link>
|
||||
<date>1250424581</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 8.0.2</name>
|
||||
<version>8.0.2</version>
|
||||
<tag>DRUPAL-8-0-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
|
||||
<date>1250424641</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>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Security update</value></term>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
+194
@@ -0,0 +1,194 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.0.,8.1.,8.2.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>drupal 8.2.0-rc2</name>
|
||||
<version>8.2.0-rc2</version>
|
||||
<tag>8.2.0-rc2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-rc2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-rc2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
RC releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>drupal 8.2.0-rc1</name>
|
||||
<version>8.2.0-rc1</version>
|
||||
<tag>8.2.0-rc1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-rc1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-rc1.tar.gz</download_link>
|
||||
<date>1533270485</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
RC releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>drupal 8.2.0-beta2</name>
|
||||
<version>8.2.0-beta2</version>
|
||||
<tag>8.2.0-beta2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Beta releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>drupal 8.2.0-beta1</name>
|
||||
<version>8.2.0-beta1</version>
|
||||
<tag>8.2.0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-beta1.tar.gz</download_link>
|
||||
<date>1533270485</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Beta releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>drupal 8.2.0-alpha2</name>
|
||||
<version>8.2.0-alpha2</version>
|
||||
<tag>8.2.0-alpha2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-alpha2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-alpha2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Alpha releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>drupal 8.2.0-alpha1</name>
|
||||
<version>8.2.0-alpha1</version>
|
||||
<tag>8.2.0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8.2.0-alpha1</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-alpha1.tar.gz</download_link>
|
||||
<date>1533270485</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Alpha releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.2</name>
|
||||
<version>8.1.2</version>
|
||||
<tag>DRUPAL-8-1-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
|
||||
<date>1250424526</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>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.1</name>
|
||||
<version>8.1.1</version>
|
||||
<tag>DRUPAL-8-1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
|
||||
<date>1250424525</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
|
||||
<date>1250424524</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.2</name>
|
||||
<version>8.0.2</version>
|
||||
<tag>DRUPAL-8-0-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
|
||||
<date>1250424523</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>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424522</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
+200
@@ -0,0 +1,200 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.0.,8.1.,8.2.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>drupal 8.2.0-rc2</name>
|
||||
<version>8.2.0-rc2</version>
|
||||
<tag>8.2.0-rc2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-rc2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-rc2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
RC releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>drupal 8.2.0-rc1</name>
|
||||
<version>8.2.0-rc1</version>
|
||||
<tag>8.2.0-rc1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-rc1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-rc1.tar.gz</download_link>
|
||||
<date>1533270485</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
RC releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>drupal 8.2.0-beta2</name>
|
||||
<version>8.2.0-beta2</version>
|
||||
<tag>8.2.0-beta2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Beta releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>drupal 8.2.0-beta1</name>
|
||||
<version>8.2.0-beta1</version>
|
||||
<tag>8.2.0-beta1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-beta1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-beta1.tar.gz</download_link>
|
||||
<date>1533270485</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Beta releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>drupal 8.2.0-alpha2</name>
|
||||
<version>8.2.0-alpha2</version>
|
||||
<tag>8.2.0-alpha2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-alpha2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-alpha2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Alpha releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>drupal 8.2.0-alpha1</name>
|
||||
<version>8.2.0-alpha1</version>
|
||||
<tag>8.2.0-alpha1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8.2.0-alpha1</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-alpha1.tar.gz</download_link>
|
||||
<date>1533270485</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Alpha releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.2</name>
|
||||
<version>8.1.2</version>
|
||||
<tag>DRUPAL-8-1-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
|
||||
<date>1250424641</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>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.1</name>
|
||||
<version>8.1.1</version>
|
||||
<tag>DRUPAL-8-1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.2</name>
|
||||
<version>8.0.2</version>
|
||||
<tag>DRUPAL-8-0-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
|
||||
<date>1250424641</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>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 8.0.2</name>
|
||||
<version>8.0.2</version>
|
||||
<tag>DRUPAL-8-0-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
|
||||
<date>1250424641</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>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
@@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 8.1.2</name>
|
||||
<version>8.1.2</version>
|
||||
<tag>DRUPAL-8-1-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
|
||||
<date>1250424641</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>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.1</name>
|
||||
<version>8.1.1</version>
|
||||
<tag>DRUPAL-8-1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.2</name>
|
||||
<version>8.0.2</version>
|
||||
<tag>DRUPAL-8-0-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
|
||||
<date>1250424641</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>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
</releases>
|
||||
</project>
|
||||
Vendored
+103
@@ -0,0 +1,103 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This XML file is the exact same as the file drupal.sec.1.2_insecure.xml except
|
||||
'supported_branches' in this file does not contain the '8.0.' branch. Therefore,
|
||||
all the releases that start with '8.0.' are in an unsupported branch.
|
||||
-->
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 8.1.2</name>
|
||||
<version>8.1.2</version>
|
||||
<tag>8.1.2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
|
||||
<date>1250424641</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>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.1</name>
|
||||
<version>8.1.1</version>
|
||||
<tag>8.1.1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>8.1.0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.2</name>
|
||||
<version>8.0.2</version>
|
||||
<tag>8.0.2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
|
||||
<date>1250424641</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>8.0.1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>8.0.0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</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/drupal</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Drupal project</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 8.1.2</name>
|
||||
<version>8.1.2</version>
|
||||
<tag>DRUPAL-8-1-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
|
||||
<date>1250424641</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>Security update</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.1</name>
|
||||
<version>8.1.1</version>
|
||||
<tag>DRUPAL-8-1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.2</name>
|
||||
<version>8.0.2</version>
|
||||
<tag>DRUPAL-8-0-2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
|
||||
<date>1250424641</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.1</name>
|
||||
<version>8.0.1</version>
|
||||
<tag>DRUPAL-8-0-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
|
||||
<date>1250424581</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
<term><name>Release type</name><value>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<api_version>8.x</api_version>
|
||||
<recommended_major>8</recommended_major>
|
||||
<supported_majors>8</supported_majors>
|
||||
<default_major>8</default_major>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/drupal</link>
|
||||
<terms><term><name>Projects</name><value>Drupal project</value></term></terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250424641</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>drupal 8.2.0-beta2</name>
|
||||
<version>8.2.0-beta2</version>
|
||||
<tag>8.2.0-beta2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Beta releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
</releases>
|
||||
</project>
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<api_version>8.x</api_version>
|
||||
<recommended_major>8</recommended_major>
|
||||
<supported_majors>8</supported_majors>
|
||||
<default_major>8</default_major>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/drupal</link>
|
||||
<terms><term><name>Projects</name><value>Drupal project</value></term></terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>drupal 8.3.0-rc1</name>
|
||||
<version>8.3.0-rc1</version>
|
||||
<tag>8.3.0-rc1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-3-0-rc1-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-3-0-rc1.tar.gz</download_link>
|
||||
<date>1533270485</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
RC releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250424641</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>drupal 8.2.0-beta2</name>
|
||||
<version>8.2.0-beta2</version>
|
||||
<tag>8.2.0-beta2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Beta releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
</releases>
|
||||
</project>
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<api_version>8.x</api_version>
|
||||
<recommended_major>8</recommended_major>
|
||||
<supported_majors>8</supported_majors>
|
||||
<default_major>8</default_major>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/drupal</link>
|
||||
<terms><term><name>Projects</name><value>Drupal project</value></term></terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 9.0.0</name>
|
||||
<version>9.0.0</version>
|
||||
<tag>DRUPAL-9-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-9-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-9-0-0.tar.gz</download_link>
|
||||
<date>1250424641</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>Drupal 8.3.0</name>
|
||||
<version>8.3.0</version>
|
||||
<tag>DRUPAL-8-3-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-3-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-3-0.tar.gz</download_link>
|
||||
<date>1250424641</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>Drupal 8.2.0</name>
|
||||
<version>8.2.0</version>
|
||||
<tag>DRUPAL-8-2-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
|
||||
<date>1250424641</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>drupal 8.2.0-beta2</name>
|
||||
<version>8.2.0-beta2</version>
|
||||
<tag>8.2.0-beta2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Beta releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
</releases>
|
||||
</project>
|
||||
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<api_version>8.x</api_version>
|
||||
<recommended_major>8</recommended_major>
|
||||
<supported_majors>8,9</supported_majors>
|
||||
<default_major>8</default_major>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/drupal</link>
|
||||
<terms><term><name>Projects</name><value>Drupal project</value></term></terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 8.9.0</name>
|
||||
<version>8.9.0</version>
|
||||
<tag>DRUPAL-8-9-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-9-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-9-0.tar.gz</download_link>
|
||||
<date>1250424641</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>drupal 8.9.0-beta2</name>
|
||||
<version>8.9.0-beta2</version>
|
||||
<tag>8.9.0-beta2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-9-0-beta2-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-9-0-beta2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Beta releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 8.8.0</name>
|
||||
<version>8.8.0</version>
|
||||
<tag>DRUPAL-8-8-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-8-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-8-0.tar.gz</download_link>
|
||||
<date>1250424641</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>Drupal 8.1.0</name>
|
||||
<version>8.1.0</version>
|
||||
<tag>DRUPAL-8-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-1-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>Drupal 8.0.0</name>
|
||||
<version>8.0.0</version>
|
||||
<tag>DRUPAL-8-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-8-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-8-0-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>
|
||||
</releases>
|
||||
</project>
|
||||
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Drupal</title>
|
||||
<short_name>drupal</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<api_version>9.x</api_version>
|
||||
<recommended_major>8</recommended_major>
|
||||
<supported_majors>8,9</supported_majors>
|
||||
<default_major>9</default_major>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/drupal</link>
|
||||
<terms><term><name>Projects</name><value>Drupal project</value></term></terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>Drupal 9.9.0</name>
|
||||
<version>9.9.0</version>
|
||||
<tag>DRUPAL-9-9-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-9-9-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-9-9-0.tar.gz</download_link>
|
||||
<date>1250424641</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>drupal 9.9.0-beta2</name>
|
||||
<version>9.9.0-beta2</version>
|
||||
<tag>9.9.0-beta2</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-9-9-0-beta2-release</release_link>
|
||||
<download_link>http://example.com/drupal-9-9-0-beta2.tar.gz</download_link>
|
||||
<date>1533298080</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
</terms>
|
||||
<security>
|
||||
Beta releases are not covered by Drupal security advisories.
|
||||
</security>
|
||||
</release>
|
||||
<release>
|
||||
<name>Drupal 9.8.0</name>
|
||||
<version>9.8.0</version>
|
||||
<tag>DRUPAL-9-8-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-9-8-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-9-8-0.tar.gz</download_link>
|
||||
<date>1250424641</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>Drupal 9.1.0</name>
|
||||
<version>9.1.0</version>
|
||||
<tag>DRUPAL-9-1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-9-1-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-9-1-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>Drupal 9.0.0</name>
|
||||
<version>9.0.0</version>
|
||||
<tag>DRUPAL-9-0-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/drupal-9-0-0-release</release_link>
|
||||
<download_link>http://example.com/drupal-9-0-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>
|
||||
</releases>
|
||||
</project>
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Update test base theme</title>
|
||||
<short_name>update_test_basetheme</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/update_test_basetheme</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Themes</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>update_test_basetheme 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-7--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/update_test_basetheme-7-x-1-1-release</release_link>
|
||||
<download_link>http://example.com/update_test_basetheme-8.x-1.1.tar.gz</download_link>
|
||||
<date>1250624521</date>
|
||||
<terms>
|
||||
<term><name>Release type</name><value>Security update</value></term>
|
||||
<term><name>Release type</name><value>New features</value></term>
|
||||
<term><name>Release type</name><value>Bug fixes</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
<release>
|
||||
<name>update_test_basetheme 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-7--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/update_test_basetheme-7-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/update_test_basetheme-8.x-1.0.tar.gz</download_link>
|
||||
<date>1250524521</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>Insecure</value></term>
|
||||
</terms>
|
||||
</release>
|
||||
</releases>
|
||||
</project>
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Update test new module</title>
|
||||
<short_name>update_test_new_module</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/update_test_new_module</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Modules</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>update_test_new_module 8.x-1.1</name>
|
||||
<version>8.x-1.1</version>
|
||||
<tag>DRUPAL-8--1-1</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/update_test_new_module-8-x-1-1-release</release_link>
|
||||
<download_link>core/modules/update/tests/update_test_new_module/8.x-1.1/update_test_new_module.tar.gz</download_link>
|
||||
<date>1300424521</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>
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title>Update test subtheme</title>
|
||||
<short_name>update_test_subtheme</short_name>
|
||||
<dc:creator>Drupal</dc:creator>
|
||||
<supported_branches>8.x-1.</supported_branches>
|
||||
<project_status>published</project_status>
|
||||
<link>http://example.com/project/update_test_subtheme</link>
|
||||
<terms>
|
||||
<term><name>Projects</name><value>Themes</value></term>
|
||||
</terms>
|
||||
<releases>
|
||||
<release>
|
||||
<name>update_test_subtheme 8.x-1.0</name>
|
||||
<version>8.x-1.0</version>
|
||||
<tag>DRUPAL-7--1-0</tag>
|
||||
<status>published</status>
|
||||
<release_link>http://example.com/update_test_subtheme-7-x-1-0-release</release_link>
|
||||
<download_link>http://example.com/update_test_subtheme-8.x-1.0.tar.gz</download_link>
|
||||
<date>1250524521</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>
|
||||
@@ -0,0 +1,5 @@
|
||||
name: 'AAA Update test'
|
||||
type: module
|
||||
description: 'Support module for update module testing.'
|
||||
package: Testing
|
||||
core: 8.x
|
||||
@@ -0,0 +1,5 @@
|
||||
name: 'BBB Update test'
|
||||
type: module
|
||||
description: 'Support module for update module testing.'
|
||||
package: Testing
|
||||
core: 8.x
|
||||
@@ -0,0 +1,5 @@
|
||||
name: 'CCC Update test'
|
||||
type: module
|
||||
description: 'Support module for update module testing.'
|
||||
package: Testing
|
||||
core: 8.x
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
system_info: []
|
||||
update_status: []
|
||||
xml_map: []
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
# Schema for the configuration files of the Update Test module.
|
||||
|
||||
update_test.settings:
|
||||
type: config_object
|
||||
label: 'Update test settings'
|
||||
mapping:
|
||||
system_info:
|
||||
type: sequence
|
||||
label: 'System info'
|
||||
sequence:
|
||||
type: sequence
|
||||
label: 'Items'
|
||||
sequence:
|
||||
type: string
|
||||
label: 'Item'
|
||||
update_status:
|
||||
type: sequence
|
||||
label: 'Update status'
|
||||
sequence:
|
||||
type: mapping
|
||||
label: 'Module'
|
||||
mapping:
|
||||
status:
|
||||
type: integer
|
||||
label: 'Value'
|
||||
xml_map:
|
||||
type: sequence
|
||||
label: 'XML map'
|
||||
sequence:
|
||||
type: string
|
||||
label: 'Value'
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\update_test\Controller;
|
||||
|
||||
use Drupal\Core\Controller\ControllerBase;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
/**
|
||||
* Provides different routes of the update_test module.
|
||||
*/
|
||||
class UpdateTestController extends ControllerBase {
|
||||
|
||||
/**
|
||||
* Displays an Error 503 (Service unavailable) page.
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
* Returns the response with a special header.
|
||||
*/
|
||||
public function updateError() {
|
||||
$response = new Response();
|
||||
$response->setStatusCode(503);
|
||||
$response->headers->set('Status', '503 Service unavailable');
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Page callback: Prints mock XML for the Update Manager module.
|
||||
*
|
||||
* The specific XML file to print depends on two things: the project we're
|
||||
* trying to fetch data for, and the desired "availability scenario" for that
|
||||
* project which we're trying to test. Before attempting to fetch this data (by
|
||||
* checking for updates on the available updates report), callers need to define
|
||||
* the 'update_test_xml_map' variable as an array, keyed by project name,
|
||||
* indicating which availability scenario to use for that project.
|
||||
*
|
||||
* @param string $project_name
|
||||
* The project short name the update manager is trying to fetch data for (the
|
||||
* fetch URLs are of the form: [base_url]/[project_name]/[core_version]).
|
||||
* @param string $version
|
||||
* The version of Drupal core.
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\BinaryFileResponse|Response
|
||||
* A BinaryFileResponse object containing the content of the XML release file
|
||||
* for the specified project if one is available; a Response object with no
|
||||
* content otherwise.
|
||||
*/
|
||||
public function updateTest($project_name, $version) {
|
||||
$xml_map = $this->config('update_test.settings')->get('xml_map');
|
||||
if (isset($xml_map[$project_name])) {
|
||||
$availability_scenario = $xml_map[$project_name];
|
||||
}
|
||||
elseif (isset($xml_map['#all'])) {
|
||||
$availability_scenario = $xml_map['#all'];
|
||||
}
|
||||
else {
|
||||
// The test didn't specify (for example, the webroot has other modules and
|
||||
// themes installed but they're disabled by the version of the site
|
||||
// running the test. So, we default to a file we know won't exist, so at
|
||||
// least we'll get an empty xml response instead of a bunch of Drupal page
|
||||
// output.
|
||||
$availability_scenario = '#broken#';
|
||||
}
|
||||
|
||||
$file = __DIR__ . "/../../../../fixtures/release-history/$project_name.$availability_scenario.xml";
|
||||
$headers = ['Content-Type' => 'text/xml; charset=utf-8'];
|
||||
if (!is_file($file)) {
|
||||
// Return an empty response.
|
||||
return new Response('', 200, $headers);
|
||||
}
|
||||
return new BinaryFileResponse($file, 200, $headers);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\update_test\Datetime;
|
||||
|
||||
use Drupal\Component\Datetime\Time;
|
||||
|
||||
/**
|
||||
* Test service for altering the request time.
|
||||
*/
|
||||
class TestTime extends Time {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getRequestTime() {
|
||||
if ($mock_date = \Drupal::state()->get('update_test.mock_date', NULL)) {
|
||||
return \DateTime::createFromFormat('Y-m-d', $mock_date)->getTimestamp();
|
||||
}
|
||||
return parent::getRequestTime();
|
||||
}
|
||||
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\update_test\Plugin\Archiver;
|
||||
|
||||
use Drupal\Core\Archiver\ArchiverInterface;
|
||||
|
||||
/**
|
||||
* Defines a test archiver implementation.
|
||||
*
|
||||
* @Archiver(
|
||||
* id = "update_test_archiver",
|
||||
* title = @Translation("Update Test Archiver"),
|
||||
* extensions = {"update-test-extension"}
|
||||
* )
|
||||
*/
|
||||
class UpdateTestArchiver implements ArchiverInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function add($file_path) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function remove($path) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function extract($path, array $files = []) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function listContents() {
|
||||
return [];
|
||||
}
|
||||
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\update_test;
|
||||
|
||||
use Drupal\Core\FileTransfer\Local;
|
||||
|
||||
/**
|
||||
* Provides an object to test the settings form functionality.
|
||||
*
|
||||
* This class extends \Drupal\Core\FileTransfer\Local to make module install
|
||||
* testing via \Drupal\Core\FileTransfer\Form\FileTransferAuthorizeForm and
|
||||
* authorize.php possible.
|
||||
*
|
||||
* @see \Drupal\update\Tests\FileTransferAuthorizeFormTest
|
||||
*/
|
||||
class TestFileTransferWithSettingsForm extends Local {
|
||||
|
||||
/**
|
||||
* Returns a Drupal\update_test\TestFileTransferWithSettingsForm object.
|
||||
*
|
||||
* @return static
|
||||
* A new Drupal\update_test\TestFileTransferWithSettingsForm object.
|
||||
*/
|
||||
public static function factory($jail, $settings) {
|
||||
return new static($jail, \Drupal::service('file_system'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a settings form with a text field to input a username.
|
||||
*/
|
||||
public function getSettingsForm() {
|
||||
$form = [];
|
||||
$form['update_test_username'] = [
|
||||
'#type' => 'textfield',
|
||||
'#title' => t('Update Test Username'),
|
||||
];
|
||||
return $form;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
name: 'Update test'
|
||||
type: module
|
||||
description: 'Support module for update module testing.'
|
||||
package: Testing
|
||||
core: 8.x
|
||||
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Module for testing Update Manager functionality.
|
||||
*/
|
||||
|
||||
use Drupal\Core\Extension\Extension;
|
||||
|
||||
/**
|
||||
* Implements hook_system_info_alter().
|
||||
*
|
||||
* Checks the 'update_test.settings:system_info' configuration and sees if we
|
||||
* need to alter the system info for the given $file based on the setting. The
|
||||
* setting is expected to be a nested associative array. If the key '#all' is
|
||||
* defined, its subarray will include .info.yml keys and values for all modules
|
||||
* and themes on the system. Otherwise, the settings array is keyed by the
|
||||
* module or theme short name ($file->name) and the subarrays contain settings
|
||||
* just for that module or theme.
|
||||
*/
|
||||
function update_test_system_info_alter(&$info, Extension $file) {
|
||||
$setting = \Drupal::config('update_test.settings')->get('system_info');
|
||||
foreach (['#all', $file->getName()] as $id) {
|
||||
if (!empty($setting[$id])) {
|
||||
foreach ($setting[$id] as $key => $value) {
|
||||
$info[$key] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_update_status_alter().
|
||||
*
|
||||
* Checks the 'update_test.settings:update_status' configuration and sees if we
|
||||
* need to alter the update status for the given project based on the setting.
|
||||
* The setting is expected to be a nested associative array. If the key '#all'
|
||||
* is defined, its subarray will include .info.yml keys and values for all modules
|
||||
* and themes on the system. Otherwise, the settings array is keyed by the
|
||||
* module or theme short name and the subarrays contain settings just for that
|
||||
* module or theme.
|
||||
*/
|
||||
function update_test_update_status_alter(&$projects) {
|
||||
$setting = \Drupal::config('update_test.settings')->get('update_status');
|
||||
if (!empty($setting)) {
|
||||
foreach ($projects as $project_name => &$project) {
|
||||
foreach (['#all', $project_name] as $id) {
|
||||
if (!empty($setting[$id])) {
|
||||
foreach ($setting[$id] as $key => $value) {
|
||||
$project[$key] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_filetransfer_info().
|
||||
*/
|
||||
function update_test_filetransfer_info() {
|
||||
// Define a test file transfer method, to ensure that there will always be at
|
||||
// least one method available in the user interface (regardless of the
|
||||
// environment in which the update manager tests are run).
|
||||
return [
|
||||
'system_test' => [
|
||||
'title' => t('Update Test FileTransfer'),
|
||||
'class' => 'Drupal\update_test\TestFileTransferWithSettingsForm',
|
||||
'weight' => -20,
|
||||
],
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
update_test.503:
|
||||
path: '/503-error'
|
||||
defaults:
|
||||
_controller: '\Drupal\update_test\Controller\UpdateTestController::updateError'
|
||||
requirements:
|
||||
_access: 'TRUE'
|
||||
|
||||
update_test.update_test:
|
||||
path: '/update-test/{project_name}/{version}'
|
||||
defaults:
|
||||
_title: 'Update test'
|
||||
_controller: '\Drupal\update_test\Controller\UpdateTestController::updateTest'
|
||||
version: NULL
|
||||
project_name: NULL
|
||||
requirements:
|
||||
_access: 'TRUE'
|
||||
@@ -0,0 +1,4 @@
|
||||
services:
|
||||
datetime.time:
|
||||
class: Drupal\update_test\Datetime\TestTime
|
||||
arguments: ['@request_stack']
|
||||
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Functional;
|
||||
|
||||
/**
|
||||
* Tests the Update Manager module upload via authorize.php functionality.
|
||||
*
|
||||
* @group update
|
||||
*/
|
||||
class FileTransferAuthorizeFormTest extends UpdateTestBase {
|
||||
|
||||
/**
|
||||
* Modules to enable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $modules = ['update', 'update_test'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $defaultTheme = 'stark';
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$admin_user = $this->drupalCreateUser(['administer modules', 'administer software updates', 'administer site configuration']);
|
||||
$this->drupalLogin($admin_user);
|
||||
|
||||
// Create a local cache so the module is not downloaded from drupal.org.
|
||||
$cache_directory = _update_manager_cache_directory(TRUE);
|
||||
foreach (['.tar.gz', '.zip'] as $extension) {
|
||||
$filename = 'update_test_new_module' . $extension;
|
||||
copy(
|
||||
__DIR__ . '/../../update_test_new_module/8.x-1.0/' . $filename,
|
||||
$cache_directory . '/' . $filename
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the Update Manager module upload via authorize.php functionality.
|
||||
*
|
||||
* @dataProvider archiveFileUrlProvider
|
||||
*/
|
||||
public function testViaAuthorize($url) {
|
||||
// Ensure the that we can select which file transfer backend to use.
|
||||
\Drupal::state()->set('test_uploaders_via_prompt', TRUE);
|
||||
|
||||
// Ensure the module does not already exist.
|
||||
$this->drupalGet('admin/modules');
|
||||
$this->assertNoText('Update test new module');
|
||||
|
||||
$edit = [
|
||||
'project_url' => $url,
|
||||
];
|
||||
$this->drupalPostForm('admin/modules/install', $edit, t('Install'));
|
||||
$edit = [
|
||||
'connection_settings[authorize_filetransfer_default]' => 'system_test',
|
||||
'connection_settings[system_test][update_test_username]' => $this->randomMachineName(),
|
||||
];
|
||||
$this->drupalPostForm(NULL, $edit, t('Continue'));
|
||||
$this->assertText(t('Installation was completed successfully.'));
|
||||
|
||||
// Ensure the module is available to install.
|
||||
$this->drupalGet('admin/modules');
|
||||
$this->assertText('Update test new module');
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider method for testViaAuthorize().
|
||||
*
|
||||
* Each of these release URLs has been cached in the setUp() method.
|
||||
*/
|
||||
public function archiveFileUrlProvider() {
|
||||
return [
|
||||
'tar.gz' => [
|
||||
'url' => 'https://ftp.drupal.org/files/projects/update_test_new_module.tar.gz',
|
||||
],
|
||||
'zip' => [
|
||||
'url' => 'https://ftp.drupal.org/files/projects/update_test_new_module.zip',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,884 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Functional;
|
||||
|
||||
use Drupal\Core\Link;
|
||||
use Drupal\Core\Url;
|
||||
use Drupal\Core\Utility\ProjectInfo;
|
||||
use Drupal\update\UpdateManagerInterface;
|
||||
|
||||
/**
|
||||
* Tests how the Update Manager module handles contributed modules and themes in
|
||||
* a series of functional tests using mock XML data.
|
||||
*
|
||||
* @group update
|
||||
*/
|
||||
class UpdateContribTest extends UpdateTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $updateTableLocator = 'table.update:nth-of-type(2)';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $updateProject = 'aaa_update_test';
|
||||
|
||||
/**
|
||||
* Modules to enable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $modules = [
|
||||
'update_test',
|
||||
'update',
|
||||
'aaa_update_test',
|
||||
'bbb_update_test',
|
||||
'ccc_update_test',
|
||||
];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $defaultTheme = 'stark';
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$admin_user = $this->drupalCreateUser(['administer site configuration']);
|
||||
$this->drupalLogin($admin_user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests when there is no available release data for a contrib module.
|
||||
*/
|
||||
public function testNoReleasesAvailable() {
|
||||
$system_info = [
|
||||
'#all' => [
|
||||
'version' => '8.0.0',
|
||||
],
|
||||
'aaa_update_test' => [
|
||||
'project' => 'aaa_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$this->refreshUpdateStatus(['drupal' => '0.0', 'aaa_update_test' => 'no-releases']);
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
// Cannot use $this->standardTests() because we need to check for the
|
||||
// 'No available releases found' string.
|
||||
$this->assertRaw('<h3>' . t('Drupal core') . '</h3>');
|
||||
$this->assertRaw(Link::fromTextAndUrl(t('Drupal'), Url::fromUri('http://example.com/project/drupal'))->toString());
|
||||
$this->assertText(t('Up to date'));
|
||||
$this->assertRaw('<h3>' . t('Modules') . '</h3>');
|
||||
$this->assertNoText(t('Update available'));
|
||||
$this->assertText(t('No available releases found'));
|
||||
$this->assertNoRaw(Link::fromTextAndUrl(t('AAA Update test'), Url::fromUri('http://example.com/project/aaa_update_test'))->toString());
|
||||
|
||||
$available = update_get_available();
|
||||
$this->assertFalse(isset($available['aaa_update_test']['fetch_status']), 'Results are cached even if no releases are available.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the basic functionality of a contrib module on the status report.
|
||||
*/
|
||||
public function testUpdateContribBasic() {
|
||||
$project_link = Link::fromTextAndUrl(t('AAA Update test'), Url::fromUri('http://example.com/project/aaa_update_test'))->toString();
|
||||
$system_info = [
|
||||
'#all' => [
|
||||
'version' => '8.0.0',
|
||||
],
|
||||
'aaa_update_test' => [
|
||||
'project' => 'aaa_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$this->refreshUpdateStatus(
|
||||
[
|
||||
'drupal' => '0.0',
|
||||
'aaa_update_test' => '1_0',
|
||||
]
|
||||
);
|
||||
$this->standardTests();
|
||||
$this->assertText(t('Up to date'));
|
||||
$this->assertRaw('<h3>' . t('Modules') . '</h3>');
|
||||
$this->assertNoText(t('Update available'));
|
||||
$this->assertRaw($project_link, 'Link to aaa_update_test project appears.');
|
||||
|
||||
// Since aaa_update_test is installed the fact it is hidden and in the
|
||||
// Testing package means it should not appear.
|
||||
$system_info['aaa_update_test']['hidden'] = TRUE;
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$this->refreshUpdateStatus(
|
||||
[
|
||||
'drupal' => '0.0',
|
||||
'aaa_update_test' => '1_0',
|
||||
]
|
||||
);
|
||||
$this->assertNoRaw($project_link, 'Link to aaa_update_test project does not appear.');
|
||||
|
||||
// A hidden and installed project not in the Testing package should appear.
|
||||
$system_info['aaa_update_test']['package'] = 'aaa_update_test';
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$this->refreshUpdateStatus(
|
||||
[
|
||||
'drupal' => '0.0',
|
||||
'aaa_update_test' => '1_0',
|
||||
]
|
||||
);
|
||||
$this->assertRaw($project_link, 'Link to aaa_update_test project appears.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that contrib projects are ordered by project name.
|
||||
*
|
||||
* If a project contains multiple modules, we want to make sure that the
|
||||
* available updates report is sorted by the parent project names, not by the
|
||||
* names of the modules included in each project. In this test case, we have
|
||||
* two contrib projects, "BBB Update test" and "CCC Update test". However, we
|
||||
* have a module called "aaa_update_test" that's part of the "CCC Update test"
|
||||
* project. We need to make sure that we see the "BBB" project before the
|
||||
* "CCC" project, even though "CCC" includes a module that's processed first
|
||||
* if you sort alphabetically by module name (which is the order we see things
|
||||
* inside \Drupal\Core\Extension\ExtensionList::getList() for example).
|
||||
*/
|
||||
public function testUpdateContribOrder() {
|
||||
// We want core to be version 8.0.0.
|
||||
$system_info = [
|
||||
'#all' => [
|
||||
'version' => '8.0.0',
|
||||
],
|
||||
// All the rest should be visible as contrib modules at version 8.x-1.0.
|
||||
|
||||
// aaa_update_test needs to be part of the "CCC Update test" project,
|
||||
// which would throw off the report if we weren't properly sorting by
|
||||
// the project names.
|
||||
'aaa_update_test' => [
|
||||
'project' => 'ccc_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
|
||||
// This should be its own project, and listed first on the report.
|
||||
'bbb_update_test' => [
|
||||
'project' => 'bbb_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
|
||||
// This will contain both aaa_update_test and ccc_update_test, and
|
||||
// should come after the bbb_update_test project.
|
||||
'ccc_update_test' => [
|
||||
'project' => 'ccc_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$this->refreshUpdateStatus(['drupal' => '0.0', '#all' => '1_0']);
|
||||
$this->standardTests();
|
||||
// We're expecting the report to say all projects are up to date.
|
||||
$this->assertText(t('Up to date'));
|
||||
$this->assertNoText(t('Update available'));
|
||||
// We want to see all 3 module names listed, since they'll show up either
|
||||
// as project names or as modules under the "Includes" listing.
|
||||
$this->assertText(t('AAA Update test'));
|
||||
$this->assertText(t('BBB Update test'));
|
||||
$this->assertText(t('CCC Update test'));
|
||||
// We want aaa_update_test included in the ccc_update_test project, not as
|
||||
// its own project on the report.
|
||||
$this->assertNoRaw(Link::fromTextAndUrl(t('AAA Update test'), Url::fromUri('http://example.com/project/aaa_update_test'))->toString(), 'Link to aaa_update_test project does not appear.');
|
||||
// The other two should be listed as projects.
|
||||
$this->assertRaw(Link::fromTextAndUrl(t('BBB Update test'), Url::fromUri('http://example.com/project/bbb_update_test'))->toString(), 'Link to bbb_update_test project appears.');
|
||||
$this->assertRaw(Link::fromTextAndUrl(t('CCC Update test'), Url::fromUri('http://example.com/project/ccc_update_test'))->toString(), 'Link to bbb_update_test project appears.');
|
||||
|
||||
// We want to make sure we see the BBB project before the CCC project.
|
||||
// Instead of just searching for 'BBB Update test' or something, we want
|
||||
// to use the full markup that starts the project entry itself, so that
|
||||
// we're really testing that the project listings are in the right order.
|
||||
$bbb_project_link = '<div class="project-update__title"><a href="http://example.com/project/bbb_update_test">BBB Update test</a>';
|
||||
$ccc_project_link = '<div class="project-update__title"><a href="http://example.com/project/ccc_update_test">CCC Update test</a>';
|
||||
$this->assertTrue(strpos($this->getSession()->getPage()->getContent(), $bbb_project_link) < strpos($this->getSession()->getPage()->getContent(), $ccc_project_link), "'BBB Update test' project is listed before the 'CCC Update test' project");
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that subthemes are notified about security updates for base themes.
|
||||
*/
|
||||
public function testUpdateBaseThemeSecurityUpdate() {
|
||||
// @todo https://www.drupal.org/node/2338175 base themes have to be
|
||||
// installed.
|
||||
// Only install the subtheme, not the base theme.
|
||||
\Drupal::service('theme_installer')->install(['update_test_subtheme']);
|
||||
|
||||
// Define the initial state for core and the subtheme.
|
||||
$system_info = [
|
||||
// We want core to be version 8.0.0.
|
||||
'#all' => [
|
||||
'version' => '8.0.0',
|
||||
],
|
||||
// Show the update_test_basetheme
|
||||
'update_test_basetheme' => [
|
||||
'project' => 'update_test_basetheme',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
// Show the update_test_subtheme
|
||||
'update_test_subtheme' => [
|
||||
'project' => 'update_test_subtheme',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$xml_mapping = [
|
||||
'drupal' => '0.0',
|
||||
'update_test_subtheme' => '1_0',
|
||||
'update_test_basetheme' => '1_1-sec',
|
||||
];
|
||||
$this->refreshUpdateStatus($xml_mapping);
|
||||
$this->assertText(t('Security update required!'));
|
||||
$this->assertRaw(Link::fromTextAndUrl(t('Update test base theme'), Url::fromUri('http://example.com/project/update_test_basetheme'))->toString(), 'Link to the Update test base theme project appears.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the Update Manager module when one normal update is available.
|
||||
*/
|
||||
public function testNormalUpdateAvailable() {
|
||||
$assert_session = $this->assertSession();
|
||||
// Ensure that the update check requires a token.
|
||||
$this->drupalGet('admin/reports/updates/check');
|
||||
$assert_session->statusCodeEquals(403);
|
||||
|
||||
$system_info = [
|
||||
'aaa_update_test' => [
|
||||
'project' => 'aaa_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
|
||||
foreach (['1.1', '1.2', '2.0'] as $version) {
|
||||
foreach (['-beta1', '-alpha1', ''] as $extra_version) {
|
||||
$full_version = "8.x-$version$extra_version";
|
||||
$this->refreshUpdateStatus([
|
||||
'drupal' => '0.0',
|
||||
'aaa_update_test' => str_replace('.', '_', $version) . $extra_version,
|
||||
]);
|
||||
$this->standardTests();
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->clickLink('Check manually');
|
||||
$this->checkForMetaRefresh();
|
||||
$assert_session->pageTextNotContains('Security update required!');
|
||||
// The XML test fixtures for this method all contain the '8.x-3.0'
|
||||
// release but because '8.x-3.0' is not in a supported branch it will
|
||||
// not be in the available updates.
|
||||
$this->assertNoRaw('8.x-3.0');
|
||||
// Set a CSS selector in order for assertions to target the 'Modules'
|
||||
// table and not Drupal core updates.
|
||||
$this->updateTableLocator = 'table.update:nth-of-type(2)';
|
||||
switch ($version) {
|
||||
case '1.1':
|
||||
// Both stable and unstable releases are available.
|
||||
// A stable release is the latest.
|
||||
if ($extra_version == '') {
|
||||
$assert_session->elementTextNotContains('css', $this->updateTableLocator, 'Up to date');
|
||||
$assert_session->elementTextContains('css', $this->updateTableLocator, 'Update available');
|
||||
$this->assertVersionUpdateLinks('Recommended version', $full_version);
|
||||
$assert_session->elementTextNotContains('css', $this->updateTableLocator, 'Latest version:');
|
||||
$assert_session->elementContains('css', $this->updateTableLocator, 'warning.svg');
|
||||
}
|
||||
// Only unstable releases are available.
|
||||
// An unstable release is the latest.
|
||||
else {
|
||||
$assert_session->elementTextContains('css', $this->updateTableLocator, 'Up to date');
|
||||
$assert_session->elementTextNotContains('css', $this->updateTableLocator, 'Update available');
|
||||
$assert_session->elementTextNotContains('css', $this->updateTableLocator, 'Recommended version:');
|
||||
$this->assertVersionUpdateLinks('Latest version', $full_version);
|
||||
$assert_session->elementContains('css', $this->updateTableLocator, 'check.svg');
|
||||
}
|
||||
break;
|
||||
|
||||
case '1.2':
|
||||
// Both stable and unstable releases are available.
|
||||
// A stable release is the latest.
|
||||
if ($extra_version == '') {
|
||||
$assert_session->elementTextNotContains('css', $this->updateTableLocator, 'Up to date');
|
||||
$assert_session->elementTextContains('css', $this->updateTableLocator, 'Update available');
|
||||
$this->assertVersionUpdateLinks('Recommended version:', $full_version);
|
||||
$assert_session->elementTextNotContains('css', $this->updateTableLocator, 'Latest version:');
|
||||
$assert_session->elementContains('css', $this->updateTableLocator, 'warning.svg');
|
||||
}
|
||||
// Both stable and unstable releases are available.
|
||||
// An unstable release is the latest.
|
||||
else {
|
||||
$assert_session->elementTextNotContains('css', $this->updateTableLocator, 'Up to date');
|
||||
$assert_session->elementTextContains('css', $this->updateTableLocator, 'Update available');
|
||||
$this->assertVersionUpdateLinks('Recommended version:', '8.x-1.1');
|
||||
$this->assertVersionUpdateLinks('Latest version:', $full_version);
|
||||
$assert_session->elementTextContains('css', $this->updateTableLocator, 'Latest version:');
|
||||
$assert_session->elementContains('css', $this->updateTableLocator, 'warning.svg');
|
||||
}
|
||||
break;
|
||||
|
||||
case '2.0':
|
||||
// When next major release (either stable or unstable) is available
|
||||
// and the current major is still supported, the next major will be
|
||||
// listed as "Also available".
|
||||
$assert_session->elementTextNotContains('css', $this->updateTableLocator, 'Up to date');
|
||||
$assert_session->elementTextContains('css', $this->updateTableLocator, 'Update available');
|
||||
$this->assertVersionUpdateLinks('Recommended version', '8.x-1.2');
|
||||
$this->assertVersionUpdateLinks('Also available', $full_version);
|
||||
$assert_session->elementTextNotContains('css', $this->updateTableLocator, 'Latest version:');
|
||||
$assert_session->elementContains('css', $this->updateTableLocator, 'warning.svg');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that disabled themes are only shown when desired.
|
||||
*
|
||||
* @todo https://www.drupal.org/node/2338175 extensions can not be hidden and
|
||||
* base themes have to be installed.
|
||||
*/
|
||||
public function testUpdateShowDisabledThemes() {
|
||||
$update_settings = $this->config('update.settings');
|
||||
// Make sure all the update_test_* themes are disabled.
|
||||
$extension_config = $this->config('core.extension');
|
||||
foreach ($extension_config->get('theme') as $theme => $weight) {
|
||||
if (preg_match('/^update_test_/', $theme)) {
|
||||
$extension_config->clear("theme.$theme");
|
||||
}
|
||||
}
|
||||
$extension_config->save();
|
||||
|
||||
// Define the initial state for core and the test contrib themes.
|
||||
$system_info = [
|
||||
// We want core to be version 8.0.0.
|
||||
'#all' => [
|
||||
'version' => '8.0.0',
|
||||
],
|
||||
// The update_test_basetheme should be visible and up to date.
|
||||
'update_test_basetheme' => [
|
||||
'project' => 'update_test_basetheme',
|
||||
'version' => '8.x-1.1',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
// The update_test_subtheme should be visible and up to date.
|
||||
'update_test_subtheme' => [
|
||||
'project' => 'update_test_subtheme',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
// When there are contributed modules in the site's file system, the
|
||||
// total number of attempts made in the test may exceed the default value
|
||||
// of update_max_fetch_attempts. Therefore this variable is set very high
|
||||
// to avoid test failures in those cases.
|
||||
$update_settings->set('fetch.max_attempts', 99999)->save();
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$xml_mapping = [
|
||||
'drupal' => '0.0',
|
||||
'update_test_subtheme' => '1_0',
|
||||
'update_test_basetheme' => '1_1-sec',
|
||||
];
|
||||
$base_theme_project_link = Link::fromTextAndUrl(t('Update test base theme'), Url::fromUri('http://example.com/project/update_test_basetheme'))->toString();
|
||||
$sub_theme_project_link = Link::fromTextAndUrl(t('Update test subtheme'), Url::fromUri('http://example.com/project/update_test_subtheme'))->toString();
|
||||
foreach ([TRUE, FALSE] as $check_disabled) {
|
||||
$update_settings->set('check.disabled_extensions', $check_disabled)->save();
|
||||
$this->refreshUpdateStatus($xml_mapping);
|
||||
// In neither case should we see the "Themes" heading for installed
|
||||
// themes.
|
||||
$this->assertNoText(t('Themes'));
|
||||
if ($check_disabled) {
|
||||
$this->assertText(t('Uninstalled themes'));
|
||||
$this->assertRaw($base_theme_project_link, 'Link to the Update test base theme project appears.');
|
||||
$this->assertRaw($sub_theme_project_link, 'Link to the Update test subtheme project appears.');
|
||||
}
|
||||
else {
|
||||
$this->assertNoText(t('Uninstalled themes'));
|
||||
$this->assertNoRaw($base_theme_project_link, 'Link to the Update test base theme project does not appear.');
|
||||
$this->assertNoRaw($sub_theme_project_link, 'Link to the Update test subtheme project does not appear.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests updates with a hidden base theme.
|
||||
*/
|
||||
public function testUpdateHiddenBaseTheme() {
|
||||
module_load_include('compare.inc', 'update');
|
||||
|
||||
// Install the subtheme.
|
||||
\Drupal::service('theme_installer')->install(['update_test_subtheme']);
|
||||
|
||||
// Add a project and initial state for base theme and subtheme.
|
||||
$system_info = [
|
||||
// Hide the update_test_basetheme.
|
||||
'update_test_basetheme' => [
|
||||
'project' => 'update_test_basetheme',
|
||||
'hidden' => TRUE,
|
||||
],
|
||||
// Show the update_test_subtheme.
|
||||
'update_test_subtheme' => [
|
||||
'project' => 'update_test_subtheme',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$projects = \Drupal::service('update.manager')->getProjects();
|
||||
$theme_data = \Drupal::service('theme_handler')->rebuildThemeData();
|
||||
$project_info = new ProjectInfo();
|
||||
$project_info->processInfoList($projects, $theme_data, 'theme', TRUE);
|
||||
|
||||
$this->assertTrue(!empty($projects['update_test_basetheme']), 'Valid base theme (update_test_basetheme) was found.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes sure that if we fetch from a broken URL, sane things happen.
|
||||
*/
|
||||
public function testUpdateBrokenFetchURL() {
|
||||
$system_info = [
|
||||
'#all' => [
|
||||
'version' => '8.0.0',
|
||||
],
|
||||
'aaa_update_test' => [
|
||||
'project' => 'aaa_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
'bbb_update_test' => [
|
||||
'project' => 'bbb_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
'ccc_update_test' => [
|
||||
'project' => 'ccc_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
|
||||
// Ensure that the update information is correct before testing.
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
|
||||
$xml_mapping = [
|
||||
'drupal' => '0.0',
|
||||
'aaa_update_test' => '1_0',
|
||||
'bbb_update_test' => 'does-not-exist',
|
||||
'ccc_update_test' => '1_0',
|
||||
];
|
||||
$this->refreshUpdateStatus($xml_mapping);
|
||||
|
||||
$this->assertText(t('Up to date'));
|
||||
// We're expecting the report to say most projects are up to date, so we
|
||||
// hope that 'Up to date' is not unique.
|
||||
$this->assertNoUniqueText(t('Up to date'));
|
||||
// It should say we failed to get data, not that we're missing an update.
|
||||
$this->assertNoText(t('Update available'));
|
||||
|
||||
// We need to check that this string is found as part of a project row, not
|
||||
// just in the "Failed to get available update data" message at the top of
|
||||
// the page.
|
||||
$this->assertRaw('<div class="project-update__status">' . t('Failed to get available update data'));
|
||||
|
||||
// We should see the output messages from fetching manually.
|
||||
$this->assertUniqueText(t('Checked available update data for 3 projects.'));
|
||||
$this->assertUniqueText(t('Failed to get available update data for one project.'));
|
||||
|
||||
// The other two should be listed as projects.
|
||||
$this->assertRaw(Link::fromTextAndUrl(t('AAA Update test'), Url::fromUri('http://example.com/project/aaa_update_test'))->toString(), 'Link to aaa_update_test project appears.');
|
||||
$this->assertNoRaw(Link::fromTextAndUrl(t('BBB Update test'), Url::fromUri('http://example.com/project/bbb_update_test'))->toString(), 'Link to bbb_update_test project does not appear.');
|
||||
$this->assertRaw(Link::fromTextAndUrl(t('CCC Update test'), Url::fromUri('http://example.com/project/ccc_update_test'))->toString(), 'Link to bbb_update_test project appears.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks that hook_update_status_alter() works to change a status.
|
||||
*
|
||||
* We provide the same external data as if aaa_update_test 8.x-1.0 were
|
||||
* installed and that was the latest release. Then we use
|
||||
* hook_update_status_alter() to try to mark this as missing a security
|
||||
* update, then assert if we see the appropriate warnings on the right pages.
|
||||
*/
|
||||
public function testHookUpdateStatusAlter() {
|
||||
$update_test_config = $this->config('update_test.settings');
|
||||
$update_admin_user = $this->drupalCreateUser(['administer site configuration', 'administer software updates']);
|
||||
$this->drupalLogin($update_admin_user);
|
||||
|
||||
$system_info = [
|
||||
'#all' => [
|
||||
'version' => '8.0.0',
|
||||
],
|
||||
'aaa_update_test' => [
|
||||
'project' => 'aaa_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$update_test_config->set('system_info', $system_info)->save();
|
||||
$update_status = [
|
||||
'aaa_update_test' => [
|
||||
'status' => UpdateManagerInterface::NOT_SECURE,
|
||||
],
|
||||
];
|
||||
$update_test_config->set('update_status', $update_status)->save();
|
||||
$this->refreshUpdateStatus(
|
||||
[
|
||||
'drupal' => '0.0',
|
||||
'aaa_update_test' => '1_0',
|
||||
]
|
||||
);
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->assertRaw('<h3>' . t('Modules') . '</h3>');
|
||||
$this->assertText(t('Security update required!'));
|
||||
$this->assertRaw(Link::fromTextAndUrl(t('AAA Update test'), Url::fromUri('http://example.com/project/aaa_update_test'))->toString(), 'Link to aaa_update_test project appears.');
|
||||
|
||||
// Visit the reports page again without the altering and make sure the
|
||||
// status is back to normal.
|
||||
$update_test_config->set('update_status', [])->save();
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->assertRaw('<h3>' . t('Modules') . '</h3>');
|
||||
$this->assertNoText(t('Security update required!'));
|
||||
$this->assertRaw(Link::fromTextAndUrl(t('AAA Update test'), Url::fromUri('http://example.com/project/aaa_update_test'))->toString(), 'Link to aaa_update_test project appears.');
|
||||
|
||||
// Turn the altering back on and visit the Update manager UI.
|
||||
$update_test_config->set('update_status', $update_status)->save();
|
||||
$this->drupalGet('admin/modules/update');
|
||||
$this->assertText(t('Security update'));
|
||||
|
||||
// Turn the altering back off and visit the Update manager UI.
|
||||
$update_test_config->set('update_status', [])->save();
|
||||
$this->drupalGet('admin/modules/update');
|
||||
$this->assertNoText(t('Security update'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that core compatibility messages are displayed.
|
||||
*/
|
||||
public function testCoreCompatibilityMessage() {
|
||||
$system_info = [
|
||||
'#all' => [
|
||||
'version' => '8.0.0',
|
||||
],
|
||||
'aaa_update_test' => [
|
||||
'project' => 'aaa_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
|
||||
// Confirm that messages are displayed for recommended and latest updates.
|
||||
// @todo In https://www.drupal.org/project/drupal/issues/3112962:
|
||||
// Change the calls to 'refreshUpdateStatus()' to use:
|
||||
// - '1.1' instead of '1.1-core_compatibility'.
|
||||
// - '1.1-alpha1' instead of '1.1-alpha1-core_compatibility'.
|
||||
// Delete the files:
|
||||
// - core/modules/update/tests/modules/update_test/drupal.1.1-alpha1-core_compatibility.xml
|
||||
// - core/modules/update/tests/modules/update_test/drupal.1.1-core_compatibility.xml
|
||||
$this->refreshUpdateStatus(['drupal' => '1.1-core_compatibility', 'aaa_update_test' => '8.x-1.2']);
|
||||
$this->assertCoreCompatibilityMessage('8.x-1.2', '8.0.0 to 8.1.1', 'Recommended version:');
|
||||
$this->assertCoreCompatibilityMessage('8.x-1.3-beta1', '8.0.0, 8.1.1', 'Latest version:');
|
||||
|
||||
// Change the available core releases and confirm that the messages change.
|
||||
$this->refreshUpdateStatus(['drupal' => '1.1-alpha1-core_compatibility', 'aaa_update_test' => '8.x-1.2']);
|
||||
$this->assertCoreCompatibilityMessage('8.x-1.2', '8.0.0 to 8.1.0', 'Recommended version:');
|
||||
$this->assertCoreCompatibilityMessage('8.x-1.3-beta1', '8.0.0', 'Latest version:');
|
||||
|
||||
// Confirm that messages are displayed for security and 'Also available'
|
||||
// updates.
|
||||
$this->refreshUpdateStatus(['drupal' => '1.1-core_compatibility', 'aaa_update_test' => 'core_compatibility.8.x-1.2_8.x-2.2']);
|
||||
$this->assertCoreCompatibilityMessage('8.x-1.2', '8.1.0 to 8.1.1', 'Security update:', FALSE);
|
||||
$this->assertCoreCompatibilityMessage('8.x-2.2', '8.1.1', 'Also available:', FALSE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests update status of security releases.
|
||||
*
|
||||
* @param string $module_version
|
||||
* The module version the site is using.
|
||||
* @param string[] $expected_security_releases
|
||||
* The security releases, if any, that the status report should recommend.
|
||||
* @param string $expected_update_message_type
|
||||
* The type of update message expected.
|
||||
* @param string $fixture
|
||||
* The fixture file to use.
|
||||
*
|
||||
* @dataProvider securityUpdateAvailabilityProvider
|
||||
*/
|
||||
public function testSecurityUpdateAvailability($module_version, array $expected_security_releases, $expected_update_message_type, $fixture) {
|
||||
$system_info = [
|
||||
'#all' => [
|
||||
'version' => '8.0.0',
|
||||
],
|
||||
'aaa_update_test' => [
|
||||
'project' => 'aaa_update_test',
|
||||
'version' => $module_version,
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$this->refreshUpdateStatus(['drupal' => '0.0', 'aaa_update_test' => $fixture]);
|
||||
$this->assertSecurityUpdates('aaa_update_test', $expected_security_releases, $expected_update_message_type, 'table.update:nth-of-type(2)');
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider method for testSecurityUpdateAvailability().
|
||||
*
|
||||
* These test cases rely on the following fixtures containing the following
|
||||
* releases:
|
||||
* - aaa_update_test.sec.8.x-1.2.xml
|
||||
* - 8.x-1.2 Security update
|
||||
* - 8.x-1.1 Insecure
|
||||
* - 8.x-1.0 Insecure
|
||||
* - aaa_update_test.sec.8.x-1.1_8.x-1.2.xml
|
||||
* - 8.x-1.2 Security update
|
||||
* - 8.x-1.1 Security update, Insecure
|
||||
* - 8.x-1.0 Insecure
|
||||
* - aaa_update_test.sec.8.x-1.2_8.x-2.2.xml
|
||||
* - 8.x-3.0-beta2
|
||||
* - 8.x-3.0-beta1 Insecure
|
||||
* - 8.x-2.2 Security update
|
||||
* - 8.x-2.1 Security update, Insecure
|
||||
* - 8.x-2.0 Insecure
|
||||
* - 8.x-1.2 Security update
|
||||
* - 8.x-1.1 Insecure
|
||||
* - 8.x-1.0 Insecure
|
||||
* - aaa_update_test.sec.8.x-2.2_1.x_secure.xml
|
||||
* - 8.x-2.2 Security update
|
||||
* - 8.x-2.1 Security update, Insecure
|
||||
* - 8.x-2.0 Insecure
|
||||
* - 8.x-1.2
|
||||
* - 8.x-1.1
|
||||
* - 8.x-1.0
|
||||
*/
|
||||
public function securityUpdateAvailabilityProvider() {
|
||||
return [
|
||||
// Security releases available for module major release 1.
|
||||
// No releases for next major.
|
||||
'8.x-1.0, 8.x-1.2' => [
|
||||
'module_patch_version' => '8.x-1.0',
|
||||
'expected_security_releases' => ['8.x-1.2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.8.x-1.2',
|
||||
],
|
||||
// Two security releases available for module major release 1.
|
||||
// 8.x-1.1 security release marked as insecure.
|
||||
// No releases for next major.
|
||||
'8.x-1.0, 8.x-1.1 8.x-1.2' => [
|
||||
'module_patch_version' => '8.x-1.0',
|
||||
'expected_security_releases' => ['8.x-1.2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.8.x-1.1_8.x-1.2',
|
||||
],
|
||||
// Security release available for module major release 2.
|
||||
// No releases for next major.
|
||||
'8.x-2.0, 8.x-2.2' => [
|
||||
'module_patch_version' => '8.x-2.0',
|
||||
'expected_security_releases' => ['8.x-2.2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.8.x-2.2_1.x_secure',
|
||||
],
|
||||
'8.x-2.2, 8.x-1.2 8.x-2.2' => [
|
||||
'module_patch_version' => '8.x-2.2',
|
||||
'expected_security_releases' => [],
|
||||
'expected_update_message_type' => static::UPDATE_NONE,
|
||||
'fixture' => 'sec.8.x-1.2_8.x-2.2',
|
||||
],
|
||||
// Security release available for module major release 1.
|
||||
// Security release also available for next major.
|
||||
'8.x-1.0, 8.x-1.2 8.x-2.2' => [
|
||||
'module_patch_version' => '8.x-1.0',
|
||||
'expected_security_releases' => ['8.x-1.2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.8.x-1.2_8.x-2.2',
|
||||
],
|
||||
// No security release available for module major release 1 but 1.x
|
||||
// releases are not marked as insecure.
|
||||
// Security release available for next major.
|
||||
'8.x-1.0, 8.x-2.2, not insecure' => [
|
||||
'module_patch_version' => '8.x-1.0',
|
||||
'expected_security_releases' => [],
|
||||
'expected_update_message_type' => static::UPDATE_AVAILABLE,
|
||||
'fixture' => 'sec.8.x-2.2_1.x_secure',
|
||||
],
|
||||
// On latest security release for module major release 1.
|
||||
// Security release also available for next major.
|
||||
'8.x-1.2, 8.x-1.2 8.x-2.2' => [
|
||||
'module_patch_version' => '8.x-1.2',
|
||||
'expected_security_release' => [],
|
||||
'expected_update_message_type' => static::UPDATE_NONE,
|
||||
'fixture' => 'sec.8.x-1.2_8.x-2.2',
|
||||
],
|
||||
'8.x-2.0, 8.x-1.2 8.x-2.2' => [
|
||||
'module_patch_version' => '8.x-2.0',
|
||||
'expected_security_releases' => ['8.x-2.2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.8.x-1.2_8.x-2.2',
|
||||
],
|
||||
// @todo In https://www.drupal.org/node/2865920 add test cases:
|
||||
// - 8.x-3.0-beta1 using fixture 'sec.8.x-1.2_8.x-2.2' to ensure that
|
||||
// 8.x-2.2 is the only security update.
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests messages when a project release is unpublished.
|
||||
*
|
||||
* This test confirms that revoked messages are displayed regardless of
|
||||
* whether the installed version is in a supported branch or not. This test
|
||||
* relies on 2 test XML fixtures that are identical except for the
|
||||
* 'supported_branches' value:
|
||||
* - aaa_update_test.1_0-supported.xml
|
||||
* 'supported_branches' is '8.x-1.,8.x-2.'.
|
||||
* - aaa_update_test.1_0-unsupported.xml
|
||||
* 'supported_branches' is '8.x-2.'.
|
||||
* They both have an '8.x-1.0' release that is unpublished and an '8.x-2.0'
|
||||
* release that is published and is the expected update.
|
||||
*/
|
||||
public function testRevokedRelease() {
|
||||
$system_info = [
|
||||
'aaa_update_test' => [
|
||||
'project' => 'aaa_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$this->refreshUpdateStatus([
|
||||
'drupal' => '0.0',
|
||||
$this->updateProject => '1_0-supported',
|
||||
]);
|
||||
// @todo Change the version label to 'Recommended version:' in
|
||||
// https://www.drupal.org/node/3114408.
|
||||
$this->confirmRevokedStatus('8.x-1.0', '8.x-2.0', 'Also available:');
|
||||
|
||||
$this->refreshUpdateStatus([
|
||||
'drupal' => '0.0',
|
||||
$this->updateProject => '1_0-unsupported',
|
||||
]);
|
||||
$this->confirmRevokedStatus('8.x-1.0', '8.x-2.0', 'Recommended version:');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests messages when a project release is marked unsupported.
|
||||
*
|
||||
* This test confirms unsupported messages are displayed regardless of whether
|
||||
* the installed version is in a supported branch or not. This test relies on
|
||||
* 2 test XML fixtures that are identical except for the 'supported_branches'
|
||||
* value:
|
||||
* - aaa_update_test.1_0-supported.xml
|
||||
* 'supported_branches' is '8.x-1.,8.x-2.'.
|
||||
* - aaa_update_test.1_0-unsupported.xml
|
||||
* 'supported_branches' is '8.x-2.'.
|
||||
* They both have an '8.x-1.1' release that has the 'Release type' value of
|
||||
* 'unsupported' and an '8.x-2.0' release that has the 'Release type' value of
|
||||
* 'supported' and is the expected update.
|
||||
*/
|
||||
public function testUnsupportedRelease() {
|
||||
$system_info = [
|
||||
'aaa_update_test' => [
|
||||
'project' => 'aaa_update_test',
|
||||
'version' => '8.x-1.1',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$this->refreshUpdateStatus([
|
||||
'drupal' => '0.0',
|
||||
$this->updateProject => '1_0-supported',
|
||||
]);
|
||||
// @todo Change the version label to 'Recommended version:' in
|
||||
// https://www.drupal.org/node/3114408.
|
||||
$this->confirmUnsupportedStatus('8.x-1.1', '8.x-2.0', 'Also available:');
|
||||
|
||||
$this->refreshUpdateStatus([
|
||||
'drupal' => '0.0',
|
||||
$this->updateProject => '1_0-unsupported',
|
||||
]);
|
||||
$this->confirmUnsupportedStatus('8.x-1.1', '8.x-2.0', 'Recommended version:');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests messages for invalid, empty and missing version strings.
|
||||
*/
|
||||
public function testNonStandardVersionStrings() {
|
||||
$version_infos = [
|
||||
'invalid' => [
|
||||
'version' => 'llama',
|
||||
'expected' => 'Invalid version: llama',
|
||||
],
|
||||
'empty' => [
|
||||
'version' => '',
|
||||
'expected' => 'Empty version',
|
||||
],
|
||||
'null' => [
|
||||
'expected' => 'Invalid version: Unknown',
|
||||
],
|
||||
];
|
||||
foreach ($version_infos as $version_info) {
|
||||
$system_info = [
|
||||
'aaa_update_test' => [
|
||||
'project' => 'aaa_update_test',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
if (isset($version_info['version'])) {
|
||||
$system_info['aaa_update_test']['version'] = $version_info['version'];
|
||||
}
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$this->refreshUpdateStatus([
|
||||
'drupal' => '0.0',
|
||||
$this->updateProject => '1_0-supported',
|
||||
]);
|
||||
$this->standardTests();
|
||||
$this->assertSession()->elementTextContains('css', $this->updateTableLocator, $version_info['expected']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a core compatibility message is correct for an update.
|
||||
*
|
||||
* @param string $version
|
||||
* The version of the update.
|
||||
* @param string $expected_range
|
||||
* The expected core compatibility range.
|
||||
* @param string $expected_release_title
|
||||
* The expected release title.
|
||||
* @param bool $is_compatible
|
||||
* If the update is compatible with the installed version of Drupal.
|
||||
*/
|
||||
protected function assertCoreCompatibilityMessage($version, $expected_range, $expected_release_title, $is_compatible = TRUE) {
|
||||
$update_element = $this->findUpdateElementByLabel($expected_release_title);
|
||||
$this->assertTrue($update_element->hasLink($version));
|
||||
$compatibility_details = $update_element->find('css', '.project-update__compatibility-details details');
|
||||
$this->assertStringContainsString("Requires Drupal core: $expected_range", $compatibility_details->getText());
|
||||
$details_summary_element = $compatibility_details->find('css', 'summary');
|
||||
if ($is_compatible) {
|
||||
$download_version = str_replace('.', '-', $version);
|
||||
// If an update is compatible with the installed version of Drupal core,
|
||||
// it should have a download link and the details element should be closed
|
||||
// by default.
|
||||
$this->assertFalse($compatibility_details->hasAttribute('open'));
|
||||
$this->assertSame('Compatible', $details_summary_element->getText());
|
||||
$this->assertEquals(
|
||||
$update_element->findLink('Download')->getAttribute('href'),
|
||||
"http://example.com/{$this->updateProject}-$download_version.tar.gz"
|
||||
);
|
||||
}
|
||||
else {
|
||||
// If an update is not compatible with the installed version of Drupal
|
||||
// core, it should not have a download link and the details element should
|
||||
// be open by default.
|
||||
$this->assertTrue($compatibility_details->hasAttribute('open'));
|
||||
$this->assertSame('Not compatible', $details_summary_element->getText());
|
||||
$this->assertFalse($update_element->hasLink('Download'));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,890 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Functional;
|
||||
|
||||
use Drupal\Core\Link;
|
||||
use Drupal\Core\Url;
|
||||
use Drupal\Tests\Traits\Core\CronRunTrait;
|
||||
|
||||
/**
|
||||
* Tests the Update Manager module through a series of functional tests using
|
||||
* mock XML data.
|
||||
*
|
||||
* @group update
|
||||
*/
|
||||
class UpdateCoreTest extends UpdateTestBase {
|
||||
|
||||
use CronRunTrait;
|
||||
|
||||
/**
|
||||
* Modules to enable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $modules = ['update_test', 'update', 'language', 'block'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $defaultTheme = 'stark';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $updateTableLocator = 'table.update';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $updateProject = 'drupal';
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$admin_user = $this->drupalCreateUser(['administer site configuration', 'administer modules', 'administer themes']);
|
||||
$this->drupalLogin($admin_user);
|
||||
$this->drupalPlaceBlock('local_actions_block');
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the version to x.x.x when no project-specific mapping is defined.
|
||||
*
|
||||
* @param string $version
|
||||
* The version.
|
||||
*/
|
||||
protected function setSystemInfo($version) {
|
||||
$setting = [
|
||||
'#all' => [
|
||||
'version' => $version,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $setting)->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the Update Manager module when no updates are available.
|
||||
*
|
||||
* The XML fixture file 'drupal.1.0.xml' which is one of the XML files this
|
||||
* test uses also contains 2 extra releases that are newer than '8.0.1'. These
|
||||
* releases will not show as available updates because of the following
|
||||
* reasons:
|
||||
* - '8.0.2' is an unpublished release.
|
||||
* - '8.0.3' is marked as 'Release type' 'Unsupported'.
|
||||
*/
|
||||
public function testNoUpdatesAvailable() {
|
||||
foreach ([0, 1] as $minor_version) {
|
||||
foreach ([0, 1] as $patch_version) {
|
||||
foreach (['-alpha1', '-beta1', ''] as $extra_version) {
|
||||
$this->setSystemInfo("8.$minor_version.$patch_version" . $extra_version);
|
||||
$this->refreshUpdateStatus(['drupal' => "$minor_version.$patch_version" . $extra_version]);
|
||||
$this->standardTests();
|
||||
// The XML test fixtures for this method all contain the '8.2.0'
|
||||
// release but because '8.2.0' is not in a supported branch it will
|
||||
// not be in the available updates.
|
||||
$this->assertNoRaw('8.2.0');
|
||||
$this->assertText(t('Up to date'));
|
||||
$this->assertNoText(t('Update available'));
|
||||
$this->assertNoText(t('Security update required!'));
|
||||
$this->assertRaw('check.svg', 'Check icon was found.');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the Update Manager module when one normal update is available.
|
||||
*/
|
||||
public function testNormalUpdateAvailable() {
|
||||
$this->setSystemInfo('8.0.0');
|
||||
|
||||
// Ensure that the update check requires a token.
|
||||
$this->drupalGet('admin/reports/updates/check');
|
||||
$this->assertSession()->statusCodeEquals(403);
|
||||
|
||||
foreach ([0, 1] as $minor_version) {
|
||||
foreach (['-alpha1', '-beta1', ''] as $extra_version) {
|
||||
$full_version = "8.$minor_version.1$extra_version";
|
||||
$this->refreshUpdateStatus(['drupal' => "$minor_version.1" . $extra_version]);
|
||||
$this->standardTests();
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->clickLink(t('Check manually'));
|
||||
$this->checkForMetaRefresh();
|
||||
$this->assertNoText(t('Security update required!'));
|
||||
// The XML test fixtures for this method all contain the '8.2.0' release
|
||||
// but because '8.2.0' is not in a supported branch it will not be in
|
||||
// the available updates.
|
||||
$this->assertNoRaw('8.2.0');
|
||||
switch ($minor_version) {
|
||||
case 0:
|
||||
// Both stable and unstable releases are available.
|
||||
// A stable release is the latest.
|
||||
if ($extra_version == '') {
|
||||
$this->assertNoText(t('Up to date'));
|
||||
$this->assertText(t('Update available'));
|
||||
$this->assertVersionUpdateLinks('Recommended version:', $full_version);
|
||||
$this->assertNoText(t('Latest version:'));
|
||||
$this->assertRaw('warning.svg', 'Warning icon was found.');
|
||||
}
|
||||
// Only unstable releases are available.
|
||||
// An unstable release is the latest.
|
||||
else {
|
||||
$this->assertText(t('Up to date'));
|
||||
$this->assertNoText(t('Update available'));
|
||||
$this->assertNoText(t('Recommended version:'));
|
||||
$this->assertVersionUpdateLinks('Latest version:', $full_version);
|
||||
$this->assertRaw('check.svg', 'Check icon was found.');
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
// Both stable and unstable releases are available.
|
||||
// A stable release is the latest.
|
||||
if ($extra_version == '') {
|
||||
$this->assertNoText(t('Up to date'));
|
||||
$this->assertText(t('Update available'));
|
||||
$this->assertVersionUpdateLinks('Recommended version:', $full_version);
|
||||
$this->assertNoText(t('Latest version:'));
|
||||
$this->assertRaw('warning.svg', 'Warning icon was found.');
|
||||
}
|
||||
// Both stable and unstable releases are available.
|
||||
// An unstable release is the latest.
|
||||
else {
|
||||
$this->assertNoText(t('Up to date'));
|
||||
$this->assertText(t('Update available'));
|
||||
$this->assertVersionUpdateLinks('Recommended version:', '8.1.0');
|
||||
$this->assertVersionUpdateLinks('Latest version:', $full_version);
|
||||
$this->assertRaw('warning.svg', 'Warning icon was found.');
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the Update Manager module when a major update is available.
|
||||
*/
|
||||
public function testMajorUpdateAvailable() {
|
||||
foreach ([0, 1] as $minor_version) {
|
||||
foreach ([0, 1] as $patch_version) {
|
||||
foreach (['-alpha1', '-beta1', ''] as $extra_version) {
|
||||
$this->setSystemInfo("8.$minor_version.$patch_version" . $extra_version);
|
||||
$this->refreshUpdateStatus(['drupal' => '9']);
|
||||
$this->standardTests();
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->clickLink(t('Check manually'));
|
||||
$this->checkForMetaRefresh();
|
||||
$this->assertNoText(t('Security update required!'));
|
||||
$this->assertRaw(Link::fromTextAndUrl('9.0.0', Url::fromUri("http://example.com/drupal-9-0-0-release"))->toString(), 'Link to release appears.');
|
||||
$this->assertRaw(Link::fromTextAndUrl(t('Download'), Url::fromUri("http://example.com/drupal-9-0-0.tar.gz"))->toString(), 'Link to download appears.');
|
||||
$this->assertRaw(Link::fromTextAndUrl(t('Release notes'), Url::fromUri("http://example.com/drupal-9-0-0-release"))->toString(), 'Link to release notes appears.');
|
||||
$this->assertNoText(t('Up to date'));
|
||||
$this->assertText(t('Not supported!'));
|
||||
$this->assertText(t('Recommended version:'));
|
||||
$this->assertNoText(t('Latest version:'));
|
||||
$this->assertRaw('error.svg', 'Error icon was found.');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the Update Manager module when a security update is available.
|
||||
*
|
||||
* @param string $site_patch_version
|
||||
* The patch version to set the site to for testing.
|
||||
* @param string[] $expected_security_releases
|
||||
* The security releases, if any, that the status report should recommend.
|
||||
* @param string $expected_update_message_type
|
||||
* The type of update message expected.
|
||||
* @param string $fixture
|
||||
* The test fixture that contains the test XML.
|
||||
*
|
||||
* @dataProvider securityUpdateAvailabilityProvider
|
||||
*/
|
||||
public function testSecurityUpdateAvailability($site_patch_version, array $expected_security_releases, $expected_update_message_type, $fixture) {
|
||||
$this->setSystemInfo("8.$site_patch_version");
|
||||
$this->refreshUpdateStatus(['drupal' => $fixture]);
|
||||
$this->assertSecurityUpdates('drupal-8', $expected_security_releases, $expected_update_message_type, 'table.update');
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider method for testSecurityUpdateAvailability().
|
||||
*
|
||||
* These test cases rely on the following fixtures containing the following
|
||||
* releases:
|
||||
* - drupal.sec.0.1_0.2.xml
|
||||
* - 8.0.2 Security update
|
||||
* - 8.0.1 Security update, Insecure
|
||||
* - 8.0.0 Insecure
|
||||
* - drupal.sec.0.2.xml
|
||||
* - 8.0.2 Security update
|
||||
* - 8.0.1 Insecure
|
||||
* - 8.0.0 Insecure
|
||||
* - drupal.sec.0.2-rc2.xml
|
||||
* - 8.2.0-rc2 Security update
|
||||
* - 8.2.0-rc1 Insecure
|
||||
* - 8.2.0-beta2 Insecure
|
||||
* - 8.2.0-beta1 Insecure
|
||||
* - 8.2.0-alpha2 Insecure
|
||||
* - 8.2.0-alpha1 Insecure
|
||||
* - 8.1.2 Security update
|
||||
* - 8.1.1 Insecure
|
||||
* - 8.1.0 Insecure
|
||||
* - 8.0.2 Security update
|
||||
* - 8.0.1 Insecure
|
||||
* - 8.0.0 Insecure
|
||||
* - drupal.sec.1.2.xml
|
||||
* - 8.1.2 Security update
|
||||
* - 8.1.1 Insecure
|
||||
* - 8.1.0 Insecure
|
||||
* - 8.0.2
|
||||
* - 8.0.1
|
||||
* - 8.0.0
|
||||
* - drupal.sec.1.2_insecure.xml
|
||||
* - 8.1.2 Security update
|
||||
* - 8.1.1 Insecure
|
||||
* - 8.1.0 Insecure
|
||||
* - 8.0.2 Insecure
|
||||
* - 8.0.1 Insecure
|
||||
* - 8.0.0 Insecure
|
||||
* - drupal.sec.1.2_insecure-unsupported
|
||||
* This file has the exact releases as drupal.sec.1.2_insecure.xml. It has a
|
||||
* different value for 'supported_branches' that does not contain '8.0.'.
|
||||
* It is used to ensure that the "Security update required!" is displayed
|
||||
* even if the currently installed version is in an unsupported branch.
|
||||
* - drupal.sec.0.2-rc2-b.xml
|
||||
* - 8.2.0-rc2
|
||||
* - 8.2.0-rc1
|
||||
* - 8.2.0-beta2
|
||||
* - 8.2.0-beta1
|
||||
* - 8.2.0-alpha2
|
||||
* - 8.2.0-alpha1
|
||||
* - 8.1.2 Security update
|
||||
* - 8.1.1 Insecure
|
||||
* - 8.1.0 Insecure
|
||||
* - 8.0.2 Security update
|
||||
* - 8.0.1 Insecure
|
||||
* - 8.0.0 Insecure
|
||||
*/
|
||||
public function securityUpdateAvailabilityProvider() {
|
||||
$test_cases = [
|
||||
// Security release available for site minor release 0.
|
||||
// No releases for next minor.
|
||||
'0.0, 0.2' => [
|
||||
'site_patch_version' => '0.0',
|
||||
'expected_security_releases' => ['0.2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.0.2',
|
||||
],
|
||||
// Site on latest security release available for site minor release 0.
|
||||
// Minor release 1 also has a security release, and the current release
|
||||
// is marked as insecure.
|
||||
'0.2, 0.2' => [
|
||||
'site_patch_version' => '0.2',
|
||||
'expected_security_release' => ['1.2', '2.0-rc2'],
|
||||
'expected_update_message_type' => static::UPDATE_AVAILABLE,
|
||||
'fixture' => 'sec.0.2-rc2',
|
||||
],
|
||||
// Two security releases available for site minor release 0.
|
||||
// 0.1 security release marked as insecure.
|
||||
// No releases for next minor.
|
||||
'0.0, 0.1 0.2' => [
|
||||
'site_patch_version' => '0.0',
|
||||
'expected_security_releases' => ['0.2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.0.1_0.2',
|
||||
],
|
||||
// Security release available for site minor release 1.
|
||||
// No releases for next minor.
|
||||
'1.0, 1.2' => [
|
||||
'site_patch_version' => '1.0',
|
||||
'expected_security_releases' => ['1.2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.1.2',
|
||||
],
|
||||
// Security release available for site minor release 0.
|
||||
// Security release also available for next minor.
|
||||
'0.0, 0.2 1.2' => [
|
||||
'site_patch_version' => '0.0',
|
||||
'expected_security_releases' => ['0.2', '1.2', '2.0-rc2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.0.2-rc2',
|
||||
],
|
||||
// No newer security release for site minor 1.
|
||||
// Previous minor has security release.
|
||||
'1.2, 0.2 1.2' => [
|
||||
'site_patch_version' => '1.2',
|
||||
'expected_security_releases' => [],
|
||||
'expected_update_message_type' => static::UPDATE_NONE,
|
||||
'fixture' => 'sec.0.2-rc2',
|
||||
],
|
||||
// No security release available for site minor release 0.
|
||||
// Security release available for next minor.
|
||||
'0.0, 1.2, insecure' => [
|
||||
'site_patch_version' => '0.0',
|
||||
'expected_security_releases' => ['1.2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.1.2_insecure',
|
||||
],
|
||||
// No security release available for site minor release 0.
|
||||
// Site minor is not a supported branch.
|
||||
// Security release available for next minor.
|
||||
'0.0, 1.2, insecure-unsupported' => [
|
||||
'site_patch_version' => '0.0',
|
||||
'expected_security_releases' => ['1.2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.1.2_insecure-unsupported',
|
||||
],
|
||||
// All releases for minor 0 are secure.
|
||||
// Security release available for next minor.
|
||||
'0.0, 1.2, secure' => [
|
||||
'site_patch_version' => '0.0',
|
||||
'expected_security_release' => ['1.2'],
|
||||
'expected_update_message_type' => static::UPDATE_AVAILABLE,
|
||||
'fixture' => 'sec.1.2',
|
||||
],
|
||||
'0.2, 1.2, secure' => [
|
||||
'site_patch_version' => '0.2',
|
||||
'expected_security_release' => ['1.2'],
|
||||
'expected_update_message_type' => static::UPDATE_AVAILABLE,
|
||||
'fixture' => 'sec.1.2',
|
||||
],
|
||||
// Site on 2.0-rc2 which is a security release.
|
||||
'2.0-rc2, 0.2 1.2' => [
|
||||
'site_patch_version' => '2.0-rc2',
|
||||
'expected_security_releases' => [],
|
||||
'expected_update_message_type' => static::UPDATE_NONE,
|
||||
'fixture' => 'sec.0.2-rc2',
|
||||
],
|
||||
// Ensure that 8.0.2 security release is not shown because it is earlier
|
||||
// version than 1.0.
|
||||
'1.0, 0.2 1.2' => [
|
||||
'site_patch_version' => '1.0',
|
||||
'expected_security_releases' => ['1.2', '2.0-rc2'],
|
||||
'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.0.2-rc2',
|
||||
],
|
||||
];
|
||||
$pre_releases = [
|
||||
'2.0-alpha1',
|
||||
'2.0-alpha2',
|
||||
'2.0-beta1',
|
||||
'2.0-beta2',
|
||||
'2.0-rc1',
|
||||
'2.0-rc2',
|
||||
];
|
||||
|
||||
foreach ($pre_releases as $pre_release) {
|
||||
// If the site is on an alpha/beta/RC of an upcoming minor and none of the
|
||||
// alpha/beta/RC versions are marked insecure, no security update should
|
||||
// be required.
|
||||
$test_cases["Pre-release:$pre_release, no security update"] = [
|
||||
'site_patch_version' => $pre_release,
|
||||
'expected_security_releases' => [],
|
||||
'expected_update_message_type' => $pre_release === '2.0-rc2' ? static::UPDATE_NONE : static::UPDATE_AVAILABLE,
|
||||
'fixture' => 'sec.0.2-rc2-b',
|
||||
];
|
||||
// If the site is on an alpha/beta/RC of an upcoming minor and there is
|
||||
// an RC version with a security update, it should be recommended.
|
||||
$test_cases["Pre-release:$pre_release, security update"] = [
|
||||
'site_patch_version' => $pre_release,
|
||||
'expected_security_releases' => $pre_release === '2.0-rc2' ? [] : ['2.0-rc2'],
|
||||
'expected_update_message_type' => $pre_release === '2.0-rc2' ? static::UPDATE_NONE : static::SECURITY_UPDATE_REQUIRED,
|
||||
'fixture' => 'sec.0.2-rc2',
|
||||
];
|
||||
}
|
||||
return $test_cases;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the security coverage messages for Drupal core versions.
|
||||
*
|
||||
* @param string $installed_version
|
||||
* The installed Drupal version to test.
|
||||
* @param string $fixture
|
||||
* The test fixture that contains the test XML.
|
||||
* @param string $requirements_section_heading
|
||||
* The requirements section heading.
|
||||
* @param string $message
|
||||
* The expected coverage message.
|
||||
* @param string $mock_date
|
||||
* The mock date to use if needed in the format CCYY-MM-DD. If an empty
|
||||
* string is provided, no mock date will be used.
|
||||
*
|
||||
* @dataProvider securityCoverageMessageProvider
|
||||
*/
|
||||
public function testSecurityCoverageMessage($installed_version, $fixture, $requirements_section_heading, $message, $mock_date) {
|
||||
\Drupal::state()->set('update_test.mock_date', $mock_date);
|
||||
$this->setSystemInfo($installed_version);
|
||||
$this->refreshUpdateStatus(['drupal' => $fixture]);
|
||||
$this->drupalGet('admin/reports/status');
|
||||
|
||||
if (empty($requirements_section_heading)) {
|
||||
$this->assertSession()->pageTextNotContains('Drupal core security coverage');
|
||||
return;
|
||||
}
|
||||
|
||||
$all_requirements_details = $this->getSession()->getPage()->findAll(
|
||||
'css',
|
||||
'details.system-status-report__entry:contains("Drupal core security coverage")'
|
||||
);
|
||||
// Ensure we only have 1 security message section.
|
||||
$this->assertCount(1, $all_requirements_details);
|
||||
$requirements_details = $all_requirements_details[0];
|
||||
// Ensure that messages are under the correct heading which could be
|
||||
// 'Checked', 'Warnings found', or 'Errors found'.
|
||||
$requirements_section_element = $requirements_details->getParent();
|
||||
$this->assertCount(1, $requirements_section_element->findAll('css', "h3:contains('$requirements_section_heading')"));
|
||||
$actual_message = $requirements_details->find('css', 'div.system-status-report__entry__value')->getText();
|
||||
$this->assertNotEmpty($actual_message);
|
||||
$this->assertEquals($message, $actual_message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Dataprovider for testSecurityCoverageMessage().
|
||||
*
|
||||
* These test cases rely on the following fixtures containing the following
|
||||
* releases:
|
||||
* - drupal.sec.2.0_3.0-rc1.xml
|
||||
* - 8.2.0
|
||||
* - 8.3.0-rc1
|
||||
* - drupal.sec.2.0.xml
|
||||
* - 8.2.0
|
||||
* - drupal.sec.2.0_9.0.0.xml
|
||||
* - 8.2.0
|
||||
* - 9.0.0
|
||||
* - drupal.sec.9.0.xml
|
||||
* - 8.9.0
|
||||
* - drupal.sec.9.9.0.xml
|
||||
* - 9.9.0
|
||||
*/
|
||||
public function securityCoverageMessageProvider() {
|
||||
$release_coverage_message = 'Visit the release cycle overview for more information on supported releases.';
|
||||
$coverage_ended_message = 'Coverage has ended';
|
||||
$update_asap_message = 'Update to a supported minor as soon as possible to continue receiving security updates.';
|
||||
$update_soon_message = 'Update to a supported minor version soon to continue receiving security updates.';
|
||||
$test_cases = [
|
||||
'8.0.0, unsupported' => [
|
||||
'installed_version' => '8.0.0',
|
||||
'fixture' => 'sec.2.0_3.0-rc1',
|
||||
'requirements_section_heading' => 'Errors found',
|
||||
'message' => "$coverage_ended_message $update_asap_message $release_coverage_message",
|
||||
'mock_date' => '',
|
||||
],
|
||||
'8.1.0, supported with 3rc' => [
|
||||
'installed_version' => '8.1.0',
|
||||
'fixture' => 'sec.2.0_3.0-rc1',
|
||||
'requirements_section_heading' => 'Warnings found',
|
||||
'message' => "Covered until 8.3.0 Update to 8.2 or higher soon to continue receiving security updates. $release_coverage_message",
|
||||
'mock_date' => '',
|
||||
],
|
||||
'8.1.0, supported' => [
|
||||
'installed_version' => '8.1.0',
|
||||
'fixture' => 'sec.2.0',
|
||||
'requirements_section_heading' => 'Warnings found',
|
||||
'message' => "Covered until 8.3.0 Update to 8.2 or higher soon to continue receiving security updates. $release_coverage_message",
|
||||
'mock_date' => '',
|
||||
],
|
||||
'8.2.0, supported with 3rc' => [
|
||||
'installed_version' => '8.2.0',
|
||||
'fixture' => 'sec.2.0_3.0-rc1',
|
||||
'requirements_section_heading' => 'Checked',
|
||||
'message' => "Covered until 8.4.0 $release_coverage_message",
|
||||
'mock_date' => '',
|
||||
],
|
||||
'8.2.0, supported' => [
|
||||
'installed_version' => '8.2.0',
|
||||
'fixture' => 'sec.2.0',
|
||||
'requirements_section_heading' => 'Checked',
|
||||
'message' => "Covered until 8.4.0 $release_coverage_message",
|
||||
'mock_date' => '',
|
||||
],
|
||||
// Ensure we don't show messages for pre-release or dev versions.
|
||||
'8.2.0-beta2, no message' => [
|
||||
'installed_version' => '8.2.0-beta2',
|
||||
'fixture' => 'sec.2.0_3.0-rc1',
|
||||
'requirements_section_heading' => '',
|
||||
'message' => '',
|
||||
'mock_date' => '',
|
||||
],
|
||||
'8.1.0-dev, no message' => [
|
||||
'installed_version' => '8.1.0-dev',
|
||||
'fixture' => 'sec.2.0_3.0-rc1',
|
||||
'requirements_section_heading' => '',
|
||||
'message' => '',
|
||||
'mock_date' => '',
|
||||
],
|
||||
// Ensures the message is correct if the next major version has been
|
||||
// released and the additional minors indicated by
|
||||
// CORE_MINORS_WITH_SECURITY_COVERAGE minors have been released.
|
||||
'8.0.0, 9 unsupported' => [
|
||||
'installed_version' => '8.0.0',
|
||||
'fixture' => 'sec.2.0_9.0.0',
|
||||
'requirements_section_heading' => 'Errors found',
|
||||
'message' => "$coverage_ended_message $update_asap_message $release_coverage_message",
|
||||
'mock_date' => '',
|
||||
],
|
||||
// Ensures the message is correct if the next major version has been
|
||||
// released and the additional minors indicated by
|
||||
// CORE_MINORS_WITH_SECURITY_COVERAGE minors have not been released.
|
||||
'8.2.0, 9 warning' => [
|
||||
'installed_version' => '8.2.0',
|
||||
'fixture' => 'sec.2.0_9.0.0',
|
||||
'requirements_section_heading' => 'Warnings found',
|
||||
'message' => "Covered until 8.4.0 Update to 8.3 or higher soon to continue receiving security updates. $release_coverage_message",
|
||||
'mock_date' => '',
|
||||
],
|
||||
];
|
||||
|
||||
// Drupal 8.8.x test cases.
|
||||
$test_cases += [
|
||||
// Ensure that a message is displayed during 8.8's active support.
|
||||
'8.8.0, supported' => [
|
||||
'installed_version' => '8.8.0',
|
||||
'fixture' => 'sec.9.0',
|
||||
'requirements_section_heading' => 'Checked',
|
||||
'message' => "Covered until 2020-Dec-02 $release_coverage_message",
|
||||
'mock_date' => '2020-06-01',
|
||||
],
|
||||
// Ensure a warning is displayed if less than six months remain until the
|
||||
// end of 8.8's security coverage.
|
||||
'8.8.0, supported, 6 months warn' => [
|
||||
'installed_version' => '8.8.0',
|
||||
'fixture' => 'sec.9.0',
|
||||
'requirements_section_heading' => 'Warnings found',
|
||||
'message' => "Covered until 2020-Dec-02 $update_soon_message $release_coverage_message",
|
||||
'mock_date' => '2020-06-02',
|
||||
],
|
||||
];
|
||||
// Ensure that the message does not change, including on the last day of
|
||||
// security coverage.
|
||||
$test_cases['8.8.0, supported, last day warn'] = $test_cases['8.8.0, supported, 6 months warn'];
|
||||
$test_cases['8.8.0, supported, last day warn']['mock_date'] = '2020-12-01';
|
||||
|
||||
// Ensure that if the 8.8 support window is finished a message is
|
||||
// displayed.
|
||||
$test_cases['8.8.0, support over'] = [
|
||||
'installed_version' => '8.8.0',
|
||||
'fixture' => 'sec.9.0',
|
||||
'requirements_section_heading' => 'Errors found',
|
||||
'message' => "$coverage_ended_message $update_asap_message $release_coverage_message",
|
||||
'mock_date' => '2020-12-02',
|
||||
];
|
||||
|
||||
// Drupal 8.9 LTS test cases.
|
||||
$test_cases['8.9.0, lts supported'] = [
|
||||
'installed_version' => '8.9.0',
|
||||
'fixture' => 'sec.9.0',
|
||||
'requirements_section_heading' => 'Checked',
|
||||
'message' => "Covered until 2021-Nov $release_coverage_message",
|
||||
'mock_date' => '2021-01-01',
|
||||
];
|
||||
// Ensure that the message does not change, including on the last day of
|
||||
// security coverage.
|
||||
$test_cases['8.9.0, lts supported, last day'] = $test_cases['8.9.0, lts supported'];
|
||||
$test_cases['8.9.0, lts supported, last day']['mock_date'] = '2021-10-31';
|
||||
|
||||
// Ensure that if LTS support window is finished a message is displayed.
|
||||
$test_cases['8.9.0, lts support over'] = [
|
||||
'installed_version' => '8.9.0',
|
||||
'fixture' => 'sec.9.0',
|
||||
'requirements_section_heading' => 'Errors found',
|
||||
'message' => "$coverage_ended_message $update_asap_message $release_coverage_message",
|
||||
'mock_date' => '2021-11-01',
|
||||
];
|
||||
|
||||
// Drupal 9 test cases.
|
||||
$test_cases += [
|
||||
// Ensure the end dates for 8.8 and 8.9 only apply to major version 8.
|
||||
'9.9.0' => [
|
||||
'installed_version' => '9.9.0',
|
||||
'fixture' => 'sec.9.9.0',
|
||||
'requirements_section_heading' => 'Checked',
|
||||
'message' => "Covered until 9.11.0 $release_coverage_message",
|
||||
'mock_date' => '',
|
||||
],
|
||||
'9.8.0' => [
|
||||
'installed_version' => '9.8.0',
|
||||
'fixture' => 'sec.9.9.0',
|
||||
'requirements_section_heading' => 'Warnings found',
|
||||
'message' => "Covered until 9.10.0 Update to 9.9 or higher soon to continue receiving security updates. $release_coverage_message",
|
||||
'mock_date' => '',
|
||||
],
|
||||
];
|
||||
return $test_cases;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures proper results where there are date mismatches among modules.
|
||||
*/
|
||||
public function testDatestampMismatch() {
|
||||
$system_info = [
|
||||
'#all' => [
|
||||
// We need to think we're running a -dev snapshot to see dates.
|
||||
'version' => '8.1.0-dev',
|
||||
'datestamp' => time(),
|
||||
],
|
||||
'block' => [
|
||||
// This is 2001-09-09 01:46:40 GMT, so test for "2001-Sep-".
|
||||
'datestamp' => '1000000000',
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
$this->refreshUpdateStatus(['drupal' => 'dev']);
|
||||
$this->assertNoText(t('2001-Sep-'));
|
||||
$this->assertText(t('Up to date'));
|
||||
$this->assertNoText(t('Update available'));
|
||||
$this->assertNoText(t('Security update required!'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks that running cron updates the list of available updates.
|
||||
*/
|
||||
public function testModulePageRunCron() {
|
||||
$this->setSystemInfo('8.0.0');
|
||||
$this->config('update.settings')
|
||||
->set('fetch.url', Url::fromRoute('update_test.update_test')->setAbsolute()->toString())
|
||||
->save();
|
||||
$this->config('update_test.settings')
|
||||
->set('xml_map', ['drupal' => '0.0'])
|
||||
->save();
|
||||
|
||||
$this->cronRun();
|
||||
$this->drupalGet('admin/modules');
|
||||
$this->assertNoText(t('No update information available.'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks that clearing the disk cache works.
|
||||
*/
|
||||
public function testClearDiskCache() {
|
||||
$directories = [
|
||||
_update_manager_cache_directory(FALSE),
|
||||
_update_manager_extract_directory(FALSE),
|
||||
];
|
||||
// Check that update directories does not exists.
|
||||
foreach ($directories as $directory) {
|
||||
$this->assertDirectoryNotExists($directory);
|
||||
}
|
||||
|
||||
// Method must not fail if update directories do not exists.
|
||||
update_clear_update_disk_cache();
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the messages at admin/modules when the site is up to date.
|
||||
*/
|
||||
public function testModulePageUpToDate() {
|
||||
$this->setSystemInfo('8.0.0');
|
||||
// Instead of using refreshUpdateStatus(), set these manually.
|
||||
$this->config('update.settings')
|
||||
->set('fetch.url', Url::fromRoute('update_test.update_test')->setAbsolute()->toString())
|
||||
->save();
|
||||
$this->config('update_test.settings')
|
||||
->set('xml_map', ['drupal' => '0.0'])
|
||||
->save();
|
||||
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->clickLink(t('Check manually'));
|
||||
$this->checkForMetaRefresh();
|
||||
$this->assertText(t('Checked available update data for one project.'));
|
||||
$this->drupalGet('admin/modules');
|
||||
$this->assertNoText(t('There are updates available for your version of Drupal.'));
|
||||
$this->assertNoText(t('There is a security update available for your version of Drupal.'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the messages at admin/modules when an update is missing.
|
||||
*/
|
||||
public function testModulePageRegularUpdate() {
|
||||
$this->setSystemInfo('8.0.0');
|
||||
// Instead of using refreshUpdateStatus(), set these manually.
|
||||
$this->config('update.settings')
|
||||
->set('fetch.url', Url::fromRoute('update_test.update_test')->setAbsolute()->toString())
|
||||
->save();
|
||||
$this->config('update_test.settings')
|
||||
->set('xml_map', ['drupal' => '0.1'])
|
||||
->save();
|
||||
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->clickLink(t('Check manually'));
|
||||
$this->checkForMetaRefresh();
|
||||
$this->assertText(t('Checked available update data for one project.'));
|
||||
$this->drupalGet('admin/modules');
|
||||
$this->assertText(t('There are updates available for your version of Drupal.'));
|
||||
$this->assertNoText(t('There is a security update available for your version of Drupal.'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the messages at admin/modules when a security update is missing.
|
||||
*/
|
||||
public function testModulePageSecurityUpdate() {
|
||||
$this->setSystemInfo('8.0.0');
|
||||
// Instead of using refreshUpdateStatus(), set these manually.
|
||||
$this->config('update.settings')
|
||||
->set('fetch.url', Url::fromRoute('update_test.update_test')->setAbsolute()->toString())
|
||||
->save();
|
||||
$this->config('update_test.settings')
|
||||
->set('xml_map', ['drupal' => 'sec.0.2'])
|
||||
->save();
|
||||
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->clickLink(t('Check manually'));
|
||||
$this->checkForMetaRefresh();
|
||||
$this->assertText(t('Checked available update data for one project.'));
|
||||
$this->drupalGet('admin/modules');
|
||||
$this->assertNoText(t('There are updates available for your version of Drupal.'));
|
||||
$this->assertText(t('There is a security update available for your version of Drupal.'));
|
||||
|
||||
// Make sure admin/appearance warns you you're missing a security update.
|
||||
$this->drupalGet('admin/appearance');
|
||||
$this->assertNoText(t('There are updates available for your version of Drupal.'));
|
||||
$this->assertText(t('There is a security update available for your version of Drupal.'));
|
||||
|
||||
// Make sure duplicate messages don't appear on Update status pages.
|
||||
$this->drupalGet('admin/reports/status');
|
||||
// We're expecting "There is a security update..." inside the status report
|
||||
// itself, but the message from
|
||||
// \Drupal\Core\Messenger\MessengerInterface::addStatus() appears as an li
|
||||
// so we can prefix with that and search for the raw HTML.
|
||||
$this->assertNoRaw('<li>' . t('There is a security update available for your version of Drupal.'));
|
||||
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->assertNoText(t('There is a security update available for your version of Drupal.'));
|
||||
|
||||
$this->drupalGet('admin/reports/updates/settings');
|
||||
$this->assertNoText(t('There is a security update available for your version of Drupal.'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the Update Manager module when the update server returns 503 errors.
|
||||
*/
|
||||
public function testServiceUnavailable() {
|
||||
$this->refreshUpdateStatus([], '503-error');
|
||||
// Ensure that no "Warning: SimpleXMLElement..." parse errors are found.
|
||||
$this->assertNoText('SimpleXMLElement');
|
||||
$this->assertUniqueText(t('Failed to get available update data for one project.'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that exactly one fetch task per project is created and not more.
|
||||
*/
|
||||
public function testFetchTasks() {
|
||||
$projecta = [
|
||||
'name' => 'aaa_update_test',
|
||||
];
|
||||
$projectb = [
|
||||
'name' => 'bbb_update_test',
|
||||
];
|
||||
$queue = \Drupal::queue('update_fetch_tasks');
|
||||
$this->assertEqual($queue->numberOfItems(), 0, 'Queue is empty');
|
||||
update_create_fetch_task($projecta);
|
||||
$this->assertEqual($queue->numberOfItems(), 1, 'Queue contains one item');
|
||||
update_create_fetch_task($projectb);
|
||||
$this->assertEqual($queue->numberOfItems(), 2, 'Queue contains two items');
|
||||
// Try to add project a again.
|
||||
update_create_fetch_task($projecta);
|
||||
$this->assertEqual($queue->numberOfItems(), 2, 'Queue still contains two items');
|
||||
|
||||
// Clear storage and try again.
|
||||
update_storage_clear();
|
||||
update_create_fetch_task($projecta);
|
||||
$this->assertEqual($queue->numberOfItems(), 2, 'Queue contains two items');
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks language module in core package at admin/reports/updates.
|
||||
*/
|
||||
public function testLanguageModuleUpdate() {
|
||||
$this->setSystemInfo('8.0.0');
|
||||
// Instead of using refreshUpdateStatus(), set these manually.
|
||||
$this->config('update.settings')
|
||||
->set('fetch.url', Url::fromRoute('update_test.update_test')->setAbsolute()->toString())
|
||||
->save();
|
||||
$this->config('update_test.settings')
|
||||
->set('xml_map', ['drupal' => '0.1'])
|
||||
->save();
|
||||
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->assertText(t('Language'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that the local actions appear.
|
||||
*/
|
||||
public function testLocalActions() {
|
||||
$admin_user = $this->drupalCreateUser(['administer site configuration', 'administer modules', 'administer software updates', 'administer themes']);
|
||||
$this->drupalLogin($admin_user);
|
||||
|
||||
$this->drupalGet('admin/modules');
|
||||
$this->clickLink(t('Install new module'));
|
||||
$this->assertUrl('admin/modules/install');
|
||||
|
||||
$this->drupalGet('admin/appearance');
|
||||
$this->clickLink(t('Install new theme'));
|
||||
$this->assertUrl('admin/theme/install');
|
||||
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->clickLink(t('Install new module or theme'));
|
||||
$this->assertUrl('admin/reports/updates/install');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests messages when a project release is unpublished.
|
||||
*
|
||||
* This test confirms that revoked messages are displayed regardless of
|
||||
* whether the installed version is in a supported branch or not. This test
|
||||
* relies on 2 test XML fixtures that are identical except for the
|
||||
* 'supported_branches' value:
|
||||
* - drupal.1.0.xml
|
||||
* 'supported_branches' is '8.0.,8.1.'.
|
||||
* - drupal.1.0-unsupported.xml
|
||||
* 'supported_branches' is '8.1.'.
|
||||
* They both have an '8.0.2' release that is unpublished and an '8.1.0'
|
||||
* release that is published and is the expected update.
|
||||
*/
|
||||
public function testRevokedRelease() {
|
||||
foreach (['1.0', '1.0-unsupported'] as $fixture) {
|
||||
$this->setSystemInfo('8.0.2');
|
||||
$this->refreshUpdateStatus([$this->updateProject => $fixture]);
|
||||
$this->standardTests();
|
||||
$this->confirmRevokedStatus('8.0.2', '8.1.0', 'Recommended version:');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests messages when a project release is marked unsupported.
|
||||
*
|
||||
* This test confirms unsupported messages are displayed regardless of whether
|
||||
* the installed version is in a supported branch or not. This test relies on
|
||||
* 2 test XML fixtures that are identical except for the 'supported_branches'
|
||||
* value:
|
||||
* - drupal.1.0.xml
|
||||
* 'supported_branches' is '8.0.,8.1.'.
|
||||
* - drupal.1.0-unsupported.xml
|
||||
* 'supported_branches' is '8.1.'.
|
||||
* They both have an '8.0.3' release that has the 'Release type' value of
|
||||
* 'unsupported' and an '8.1.0' release that has the 'Release type' value of
|
||||
* 'supported' and is the expected update.
|
||||
*/
|
||||
public function testUnsupportedRelease() {
|
||||
foreach (['1.0', '1.0-unsupported'] as $fixture) {
|
||||
$this->setSystemInfo('8.0.3');
|
||||
$this->refreshUpdateStatus([$this->updateProject => $fixture]);
|
||||
$this->standardTests();
|
||||
$this->confirmUnsupportedStatus('8.0.3', '8.1.0', 'Recommended version:');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function assertVersionUpdateLinks($label, $version, $download_version = NULL) {
|
||||
// Test XML files for Drupal core use '-' in the version number for the
|
||||
// download link.
|
||||
$download_version = str_replace('.', '-', $version);
|
||||
parent::assertVersionUpdateLinks($label, $version, $download_version);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,236 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Functional;
|
||||
|
||||
/**
|
||||
* Tests the Update Manager module's 'Update' form and functionality.
|
||||
*
|
||||
* @todo In https://www.drupal.org/project/drupal/issues/3117229 expand this.
|
||||
*
|
||||
* @group update
|
||||
*/
|
||||
class UpdateManagerUpdateTest extends UpdateTestBase {
|
||||
|
||||
/**
|
||||
* Modules to enable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $modules = [
|
||||
'update',
|
||||
'update_test',
|
||||
'aaa_update_test',
|
||||
'bbb_update_test',
|
||||
];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $defaultTheme = 'stark';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$admin_user = $this->drupalCreateUser([
|
||||
'administer software updates',
|
||||
'administer site configuration',
|
||||
]);
|
||||
$this->drupalLogin($admin_user);
|
||||
|
||||
// The installed state of the system is the same for all test cases. What
|
||||
// varies for each test scenario is which release history fixture we fetch,
|
||||
// which in turn changes the expected state of the UpdateManagerUpdateForm.
|
||||
$system_info = [
|
||||
'#all' => [
|
||||
'version' => '8.0.0',
|
||||
],
|
||||
'aaa_update_test' => [
|
||||
'project' => 'aaa_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
'bbb_update_test' => [
|
||||
'project' => 'bbb_update_test',
|
||||
'version' => '8.x-1.0',
|
||||
'hidden' => FALSE,
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')->set('system_info', $system_info)->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides data for test scenarios involving incompatible updates.
|
||||
*
|
||||
* These test cases rely on the following fixtures containing the following
|
||||
* releases:
|
||||
* - aaa_update_test.8.x-1.2.xml
|
||||
* - 8.x-1.2 Compatible with 8.0.0 core.
|
||||
* - aaa_update_test.core_compatibility.8.x-1.2_8.x-2.2.xml
|
||||
* - 8.x-1.2 Requires 8.1.0 and above.
|
||||
* - bbb_update_test.1_0.xml
|
||||
* - 8.x-1.0 is the only available release.
|
||||
* - bbb_update_test.1_1.xml
|
||||
* - 8.x-1.1 is available and compatible with everything (does not define
|
||||
* <core_compatibility> at all).
|
||||
* - bbb_update_test.1_2.xml
|
||||
* - 8.x-1.1 is available and compatible with everything (does not define
|
||||
* <core_compatibility> at all).
|
||||
* - 8.x-1.2 is available and requires Drupal 8.1.0 and above.
|
||||
*
|
||||
* @todo In https://www.drupal.org/project/drupal/issues/3112962:
|
||||
* Change the 'core_fixture' values here to use:
|
||||
* - '1.1' instead of '1.1-core_compatibility'.
|
||||
* - '1.1-alpha1' instead of '1.1-alpha1-core_compatibility'.
|
||||
* Delete the files:
|
||||
* - core/modules/update/tests/modules/update_test/drupal.1.1-alpha1-core_compatibility.xml
|
||||
* - core/modules/update/tests/modules/update_test/drupal.1.1-core_compatibility.xml
|
||||
*
|
||||
* @return array[]
|
||||
* Test data.
|
||||
*/
|
||||
public function incompatibleUpdatesTableProvider() {
|
||||
return [
|
||||
'only one compatible' => [
|
||||
'core_fixture' => '1.1-core_compatibility',
|
||||
// aaa_update_test.8.x-1.2.xml has core compatibility set and will test
|
||||
// the case where $recommended_release['core_compatible'] === TRUE in
|
||||
// \Drupal\update\Form\UpdateManagerUpdate.
|
||||
'a_fixture' => '8.x-1.2',
|
||||
// Use a fixture with only a 8.x-1.0 release so BBB is up to date.
|
||||
'b_fixture' => '1_0',
|
||||
'compatible' => [
|
||||
'AAA' => '8.x-1.2',
|
||||
],
|
||||
'incompatible' => [],
|
||||
],
|
||||
'only one incompatible' => [
|
||||
'core_fixture' => '1.1-core_compatibility',
|
||||
'a_fixture' => 'core_compatibility.8.x-1.2_8.x-2.2',
|
||||
// Use a fixture with only a 8.x-1.0 release so BBB is up to date.
|
||||
'b_fixture' => '1_0',
|
||||
'compatible' => [],
|
||||
'incompatible' => [
|
||||
'AAA' => [
|
||||
'recommended' => '8.x-1.2',
|
||||
'range' => '8.1.0 to 8.1.1',
|
||||
],
|
||||
],
|
||||
],
|
||||
'two compatible, no incompatible' => [
|
||||
'core_fixture' => '1.1-core_compatibility',
|
||||
'a_fixture' => '8.x-1.2',
|
||||
// bbb_update_test.1_1.xml does not have core compatibility set and will
|
||||
// test the case where $recommended_release['core_compatible'] === NULL
|
||||
// in \Drupal\update\Form\UpdateManagerUpdate.
|
||||
'b_fixture' => '1_1',
|
||||
'compatible' => [
|
||||
'AAA' => '8.x-1.2',
|
||||
'BBB' => '8.x-1.1',
|
||||
],
|
||||
'incompatible' => [],
|
||||
],
|
||||
'two incompatible, no compatible' => [
|
||||
'core_fixture' => '1.1-core_compatibility',
|
||||
'a_fixture' => 'core_compatibility.8.x-1.2_8.x-2.2',
|
||||
// bbb_update_test.1_2.xml has core compatibility set and will test the
|
||||
// case where $recommended_release['core_compatible'] === FALSE in
|
||||
// \Drupal\update\Form\UpdateManagerUpdate.
|
||||
'b_fixture' => '1_2',
|
||||
'compatible' => [],
|
||||
'incompatible' => [
|
||||
'AAA' => [
|
||||
'recommended' => '8.x-1.2',
|
||||
'range' => '8.1.0 to 8.1.1',
|
||||
],
|
||||
'BBB' => [
|
||||
'recommended' => '8.x-1.2',
|
||||
'range' => '8.1.0 to 8.1.1',
|
||||
],
|
||||
],
|
||||
],
|
||||
'one compatible, one incompatible' => [
|
||||
'core_fixture' => '1.1-core_compatibility',
|
||||
'a_fixture' => 'core_compatibility.8.x-1.2_8.x-2.2',
|
||||
'b_fixture' => '1_1',
|
||||
'compatible' => [
|
||||
'BBB' => '8.x-1.1',
|
||||
],
|
||||
'incompatible' => [
|
||||
'AAA' => [
|
||||
'recommended' => '8.x-1.2',
|
||||
'range' => '8.1.0 to 8.1.1',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the Update form for a single test scenario of incompatible updates.
|
||||
*
|
||||
* @dataProvider incompatibleUpdatesTableProvider
|
||||
*
|
||||
* @param string $core_fixture
|
||||
* The fixture file to use for Drupal core.
|
||||
* @param string $a_fixture
|
||||
* The fixture file to use for the aaa_update_test module.
|
||||
* @param string $b_fixture
|
||||
* The fixture file to use for the bbb_update_test module.
|
||||
* @param string[] $compatible
|
||||
* Compatible recommended updates (if any). Keys are module identifier
|
||||
* ('AAA' or 'BBB') and values are the expected recommended release.
|
||||
* @param string[][] $incompatible
|
||||
* Incompatible recommended updates (if any). Keys are module identifier
|
||||
* ('AAA' or 'BBB') and values are subarrays with the following keys:
|
||||
* - 'recommended': The recommended version.
|
||||
* - 'range': The versions of Drupal core required for that version.
|
||||
*/
|
||||
public function testIncompatibleUpdatesTable($core_fixture, $a_fixture, $b_fixture, array $compatible, array $incompatible) {
|
||||
|
||||
$assert_session = $this->assertSession();
|
||||
$compatible_table_locator = '[data-drupal-selector="edit-projects"]';
|
||||
$incompatible_table_locator = '[data-drupal-selector="edit-not-compatible"]';
|
||||
|
||||
$this->refreshUpdateStatus(['drupal' => $core_fixture, 'aaa_update_test' => $a_fixture, 'bbb_update_test' => $b_fixture]);
|
||||
$this->drupalGet('admin/reports/updates/update');
|
||||
|
||||
if ($compatible) {
|
||||
// Verify the number of rows in the table.
|
||||
$assert_session->elementsCount('css', "$compatible_table_locator tbody tr", count($compatible));
|
||||
// We never want to see a compatibility range in the compatible table.
|
||||
$assert_session->elementTextNotContains('css', $compatible_table_locator, 'Requires Drupal core');
|
||||
foreach ($compatible as $module => $version) {
|
||||
$compatible_row = "$compatible_table_locator tbody tr:contains('$module Update test')";
|
||||
// First <td> is the checkbox, so start with td #2.
|
||||
$assert_session->elementTextContains('css', "$compatible_row td:nth-of-type(2)", "$module Update test");
|
||||
// Both contrib modules use 8.x-1.0 as the currently installed version.
|
||||
$assert_session->elementTextContains('css', "$compatible_row td:nth-of-type(3)", '8.x-1.0');
|
||||
$assert_session->elementTextContains('css', "$compatible_row td:nth-of-type(4)", $version);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Verify there is no compatible updates table.
|
||||
$assert_session->elementNotExists('css', $compatible_table_locator);
|
||||
}
|
||||
|
||||
if ($incompatible) {
|
||||
// Verify the number of rows in the table.
|
||||
$assert_session->elementsCount('css', "$incompatible_table_locator tbody tr", count($incompatible));
|
||||
foreach ($incompatible as $module => $data) {
|
||||
$incompatible_row = "$incompatible_table_locator tbody tr:contains('$module Update test')";
|
||||
$assert_session->elementTextContains('css', "$incompatible_row td:nth-of-type(1)", "$module Update test");
|
||||
// Both contrib modules use 8.x-1.0 as the currently installed version.
|
||||
$assert_session->elementTextContains('css', "$incompatible_row td:nth-of-type(2)", '8.x-1.0');
|
||||
$assert_session->elementTextContains('css', "$incompatible_row td:nth-of-type(3)", $data['recommended']);
|
||||
$assert_session->elementTextContains('css', "$incompatible_row td:nth-of-type(3)", 'Requires Drupal core: ' . $data['range']);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Verify there is no incompatible updates table.
|
||||
$assert_session->elementNotExists('css', $incompatible_table_locator);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,294 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Functional;
|
||||
|
||||
use Drupal\Core\DrupalKernel;
|
||||
use Drupal\Core\Link;
|
||||
use Drupal\Core\Url;
|
||||
use Drupal\Tests\BrowserTestBase;
|
||||
|
||||
/**
|
||||
* Defines some shared functions used by all update tests.
|
||||
*
|
||||
* The overarching methodology of these tests is we need to compare a given
|
||||
* state of installed modules and themes (e.g., version, project grouping,
|
||||
* timestamps, etc) against a current state of what the release history XML
|
||||
* files we fetch say is available. We have dummy XML files (in the
|
||||
* core/modules/update/tests directory) that describe various scenarios of
|
||||
* what's available for different test projects, and we have dummy .info file
|
||||
* data (specified via hook_system_info_alter() in the update_test helper
|
||||
* module) describing what's currently installed. Each test case defines a set
|
||||
* of projects to install, their current state (via the
|
||||
* 'update_test_system_info' variable) and the desired available update data
|
||||
* (via the 'update_test_xml_map' variable), and then performs a series of
|
||||
* assertions that the report matches our expectations given the specific
|
||||
* initial state and availability scenario.
|
||||
*/
|
||||
abstract class UpdateTestBase extends BrowserTestBase {
|
||||
|
||||
/**
|
||||
* Denotes a security update will be required in the test case.
|
||||
*/
|
||||
const SECURITY_UPDATE_REQUIRED = 'SECURITY_UPDATE_REQUIRED';
|
||||
|
||||
/**
|
||||
* Denotes an update will be available in the test case.
|
||||
*/
|
||||
const UPDATE_AVAILABLE = 'UPDATE_AVAILABLE';
|
||||
|
||||
/**
|
||||
* Denotes no update will be available in the test case.
|
||||
*/
|
||||
const UPDATE_NONE = 'UPDATE_NONE';
|
||||
|
||||
/**
|
||||
* The CSS locator for the update table run asserts on.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $updateTableLocator;
|
||||
|
||||
/**
|
||||
* The project that is being tested.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $updateProject;
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
// Change the root path which Update Manager uses to install and update
|
||||
// projects to be inside the testing site directory. See
|
||||
// \Drupal\update\UpdateRootFactory::get() for equivalent changes to the
|
||||
// test child site.
|
||||
$request = \Drupal::request();
|
||||
$update_root = $this->container->get('update.root') . '/' . DrupalKernel::findSitePath($request);
|
||||
$this->container->set('update.root', $update_root);
|
||||
\Drupal::setContainer($this->container);
|
||||
|
||||
// Create the directories within the root path within which the Update
|
||||
// Manager will install projects.
|
||||
foreach (drupal_get_updaters() as $updater_info) {
|
||||
$updater = $updater_info['class'];
|
||||
$install_directory = $update_root . '/' . $updater::getRootDirectoryRelativePath();
|
||||
if (!is_dir($install_directory)) {
|
||||
mkdir($install_directory);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Refreshes the update status based on the desired available update scenario.
|
||||
*
|
||||
* @param $xml_map
|
||||
* Array that maps project names to availability scenarios to fetch. The key
|
||||
* '#all' is used if a project-specific mapping is not defined.
|
||||
* @param $url
|
||||
* (optional) A string containing the URL to fetch update data from.
|
||||
* Defaults to 'update-test'.
|
||||
*
|
||||
* @see \Drupal\update_test\Controller\UpdateTestController::updateTest()
|
||||
*/
|
||||
protected function refreshUpdateStatus($xml_map, $url = 'update-test') {
|
||||
// Tell the Update Manager module to fetch from the URL provided by
|
||||
// update_test module.
|
||||
$this->config('update.settings')->set('fetch.url', Url::fromUri('base:' . $url, ['absolute' => TRUE])->toString())->save();
|
||||
// Save the map for UpdateTestController::updateTest() to use.
|
||||
$this->config('update_test.settings')->set('xml_map', $xml_map)->save();
|
||||
// Manually check the update status.
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->clickLink(t('Check manually'));
|
||||
$this->checkForMetaRefresh();
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs a series of assertions that are applicable to all update statuses.
|
||||
*/
|
||||
protected function standardTests() {
|
||||
$this->assertRaw('<h3>' . t('Drupal core') . '</h3>');
|
||||
$this->assertRaw(Link::fromTextAndUrl(t('Drupal'), Url::fromUri('http://example.com/project/drupal'))->toString(), 'Link to the Drupal project appears.');
|
||||
$this->assertNoText(t('No available releases found'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts the expected security updates are displayed correctly on the page.
|
||||
*
|
||||
* @param string $project_path_part
|
||||
* The project path part needed for the download and release links.
|
||||
* @param string[] $expected_security_releases
|
||||
* The security releases, if any, that the status report should recommend.
|
||||
* @param string $expected_update_message_type
|
||||
* The type of update message expected.
|
||||
* @param string $update_element_css_locator
|
||||
* The CSS locator for the page element that contains the security updates.
|
||||
*/
|
||||
protected function assertSecurityUpdates($project_path_part, array $expected_security_releases, $expected_update_message_type, $update_element_css_locator) {
|
||||
$assert_session = $this->assertSession();
|
||||
$page = $this->getSession()->getPage();
|
||||
$this->standardTests();
|
||||
$assert_session->elementTextNotContains('css', $update_element_css_locator, 'Not supported');
|
||||
$all_security_release_urls = array_map(function ($link) {
|
||||
return $link->getAttribute('href');
|
||||
}, $page->findAll('css', "$update_element_css_locator .version-security a[href$='-release']"));
|
||||
$all_security_download_urls = array_map(function ($link) {
|
||||
return $link->getAttribute('href');
|
||||
}, $page->findAll('css', "$update_element_css_locator .version-security a[href$='.tar.gz']"));
|
||||
if ($expected_security_releases) {
|
||||
$expected_download_urls = [];
|
||||
$expected_release_urls = [];
|
||||
if ($expected_update_message_type === static::SECURITY_UPDATE_REQUIRED) {
|
||||
$assert_session->elementTextNotContains('css', $update_element_css_locator, 'Update available');
|
||||
$assert_session->elementTextContains('css', $update_element_css_locator, 'Security update required!');
|
||||
$assert_session->responseContains('error.svg', 'Error icon was found.');
|
||||
}
|
||||
else {
|
||||
$assert_session->elementTextContains('css', $update_element_css_locator, 'Update available');
|
||||
$assert_session->elementTextNotContains('css', $update_element_css_locator, 'Security update required!');
|
||||
}
|
||||
$assert_session->elementTextNotContains('css', $update_element_css_locator, 'Up to date');
|
||||
foreach ($expected_security_releases as $expected_security_release) {
|
||||
$expected_url_version = str_replace('.', '-', $expected_security_release);
|
||||
$release_url = "http://example.com/$project_path_part-$expected_url_version-release";
|
||||
$download_url = "http://example.com/$project_path_part-$expected_url_version.tar.gz";
|
||||
$expected_release_urls[] = $release_url;
|
||||
$expected_download_urls[] = $download_url;
|
||||
// Ensure the expected links are security links.
|
||||
$this->assertContains($release_url, $all_security_release_urls, "Release $release_url is a security release link.");
|
||||
$this->assertContains($download_url, $all_security_download_urls, "Release $download_url is a security download link.");
|
||||
$assert_session->linkByHrefExists($release_url);
|
||||
$assert_session->linkByHrefExists($download_url);
|
||||
}
|
||||
// Ensure no other links are shown as security releases.
|
||||
$this->assertEquals([], array_diff($all_security_release_urls, $expected_release_urls));
|
||||
$this->assertEquals([], array_diff($all_security_download_urls, $expected_download_urls));
|
||||
}
|
||||
else {
|
||||
// Ensure there were no security links.
|
||||
$this->assertEquals([], $all_security_release_urls);
|
||||
$this->assertEquals([], $all_security_download_urls);
|
||||
$assert_session->pageTextNotContains('Security update required!');
|
||||
if ($expected_update_message_type === static::UPDATE_AVAILABLE) {
|
||||
$assert_session->elementTextContains('css', $update_element_css_locator, 'Update available');
|
||||
$assert_session->elementTextNotContains('css', $update_element_css_locator, 'Up to date');
|
||||
}
|
||||
elseif ($expected_update_message_type === static::UPDATE_NONE) {
|
||||
$assert_session->elementTextNotContains('css', $update_element_css_locator, 'Update available');
|
||||
$assert_session->elementTextContains('css', $update_element_css_locator, 'Up to date');
|
||||
}
|
||||
else {
|
||||
$this->fail('Unexpected value for $expected_update_message_type: ' . $expected_update_message_type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that an update version has the correct links.
|
||||
*
|
||||
* @param string $label
|
||||
* The label for the update.
|
||||
* @param string $version
|
||||
* The project version.
|
||||
* @param string|null $download_version
|
||||
* (optional) The version number as it appears in the download link. If
|
||||
* $download_version is not provided then $version will be used.
|
||||
*/
|
||||
protected function assertVersionUpdateLinks($label, $version, $download_version = NULL) {
|
||||
$download_version = $download_version ?? $version;
|
||||
$update_element = $this->findUpdateElementByLabel($label);
|
||||
// In the release notes URL the periods are replaced with dashes.
|
||||
$url_version = str_replace('.', '-', $version);
|
||||
|
||||
$this->assertEquals($update_element->findLink($version)->getAttribute('href'), "http://example.com/{$this->updateProject}-$url_version-release");
|
||||
$this->assertEquals($update_element->findLink('Download')->getAttribute('href'), "http://example.com/{$this->updateProject}-$download_version.tar.gz");
|
||||
$this->assertEquals($update_element->findLink('Release notes')->getAttribute('href'), "http://example.com/{$this->updateProject}-$url_version-release");
|
||||
}
|
||||
|
||||
/**
|
||||
* Confirms messages are correct when a release has been unpublished/revoked.
|
||||
*
|
||||
* @param string $revoked_version
|
||||
* The revoked version that is currently installed.
|
||||
* @param string $newer_version
|
||||
* The expected newer version to recommend.
|
||||
* @param string $new_version_label
|
||||
* The expected label for the newer version (for example 'Recommended
|
||||
* version:' or 'Also available:').
|
||||
*/
|
||||
protected function confirmRevokedStatus($revoked_version, $newer_version, $new_version_label) {
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->clickLink(t('Check manually'));
|
||||
$this->checkForMetaRefresh();
|
||||
$this->assertUpdateTableTextContains('Revoked!');
|
||||
$this->assertUpdateTableTextContains($revoked_version);
|
||||
$this->assertUpdateTableElementContains('error.svg');
|
||||
$this->assertUpdateTableTextContains('Release revoked: Your currently installed release has been revoked, and is no longer available for download. Disabling everything included in this release or upgrading is strongly recommended!');
|
||||
$this->assertVersionUpdateLinks($new_version_label, $newer_version);
|
||||
}
|
||||
|
||||
/**
|
||||
* Confirms messages are correct when a release has been marked unsupported.
|
||||
*
|
||||
* @param string $unsupported_version
|
||||
* The unsupported version that is currently installed.
|
||||
* @param string $newer_version
|
||||
* The expected newer version to recommend.
|
||||
* @param string $new_version_label
|
||||
* The expected label for the newer version (for example 'Recommended
|
||||
* version:' or 'Also available:').
|
||||
*/
|
||||
protected function confirmUnsupportedStatus($unsupported_version, $newer_version, $new_version_label) {
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
$this->clickLink(t('Check manually'));
|
||||
$this->checkForMetaRefresh();
|
||||
$this->assertUpdateTableTextContains('Not supported!');
|
||||
$this->assertUpdateTableTextContains($unsupported_version);
|
||||
$this->assertUpdateTableElementContains('error.svg');
|
||||
$this->assertUpdateTableTextContains('Release not supported: Your currently installed release is now unsupported, and is no longer available for download. Disabling everything included in this release or upgrading is strongly recommended!');
|
||||
$this->assertVersionUpdateLinks($new_version_label, $newer_version);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that the update table text contains the specified text.
|
||||
*
|
||||
* @param string $text
|
||||
* The expected text.
|
||||
*
|
||||
* @see \Behat\Mink\WebAssert::elementTextContains()
|
||||
*/
|
||||
protected function assertUpdateTableTextContains($text) {
|
||||
$this->assertSession()
|
||||
->elementTextContains('css', $this->updateTableLocator, $text);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that the update table element HTML contains the specified text.
|
||||
*
|
||||
* @param string $text
|
||||
* The expected text.
|
||||
*
|
||||
* @see \Behat\Mink\WebAssert::elementContains()
|
||||
*/
|
||||
protected function assertUpdateTableElementContains($text) {
|
||||
$this->assertSession()
|
||||
->elementContains('css', $this->updateTableLocator, $text);
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds an update page element by label.
|
||||
*
|
||||
* @param string $label
|
||||
* The label for the update, for example "Recommended version:" or
|
||||
* "Latest version:".
|
||||
*
|
||||
* @return \Behat\Mink\Element\NodeElement
|
||||
* The update element.
|
||||
*/
|
||||
protected function findUpdateElementByLabel($label) {
|
||||
$update_elements = $this->getSession()->getPage()
|
||||
->findAll('css', $this->updateTableLocator . " .project-update__version:contains(\"$label\")");
|
||||
$this->assertCount(1, $update_elements);
|
||||
return $update_elements[0];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,206 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Functional;
|
||||
|
||||
use Drupal\Core\Extension\InfoParserDynamic;
|
||||
use Drupal\Core\Updater\Updater;
|
||||
use Drupal\Core\Url;
|
||||
use Drupal\Tests\TestFileCreationTrait;
|
||||
|
||||
/**
|
||||
* Tests the Update Manager module's upload and extraction functionality.
|
||||
*
|
||||
* @group update
|
||||
*/
|
||||
class UpdateUploadTest extends UpdateTestBase {
|
||||
|
||||
use TestFileCreationTrait {
|
||||
getTestFiles as drupalGetTestFiles;
|
||||
}
|
||||
|
||||
/**
|
||||
* Modules to enable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $modules = ['update', 'update_test'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $defaultTheme = 'stark';
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$admin_user = $this->drupalCreateUser(['administer modules', 'administer software updates', 'administer site configuration']);
|
||||
$this->drupalLogin($admin_user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests upload, extraction, and update of a module.
|
||||
*/
|
||||
public function testUploadModule() {
|
||||
// Ensure that the update information is correct before testing.
|
||||
update_get_available(TRUE);
|
||||
|
||||
// Images are not valid archives, so get one and try to install it. We
|
||||
// need an extra variable to store the result of drupalGetTestFiles()
|
||||
// since reset() takes an argument by reference and passing in a constant
|
||||
// emits a notice in strict mode.
|
||||
$imageTestFiles = $this->drupalGetTestFiles('image');
|
||||
$invalidArchiveFile = reset($imageTestFiles);
|
||||
$edit = [
|
||||
'files[project_upload]' => $invalidArchiveFile->uri,
|
||||
];
|
||||
// This also checks that the correct archive extensions are allowed.
|
||||
$this->drupalPostForm('admin/modules/install', $edit, t('Install'));
|
||||
$extensions = \Drupal::service('plugin.manager.archiver')->getExtensions();
|
||||
$this->assertSession()->pageTextContains(t('Only files with the following extensions are allowed: @archive_extensions.', ['@archive_extensions' => $extensions]));
|
||||
$this->assertUrl('admin/modules/install');
|
||||
|
||||
// Check to ensure an existing module can't be reinstalled. Also checks that
|
||||
// the archive was extracted since we can't know if the module is already
|
||||
// installed until after extraction.
|
||||
$validArchiveFile = __DIR__ . '/../../aaa_update_test.tar.gz';
|
||||
$edit = [
|
||||
'files[project_upload]' => $validArchiveFile,
|
||||
];
|
||||
$this->drupalPostForm('admin/modules/install', $edit, t('Install'));
|
||||
$this->assertText(t('@module_name is already installed.', ['@module_name' => 'AAA Update test']), 'Existing module was extracted and not reinstalled.');
|
||||
$this->assertUrl('admin/modules/install');
|
||||
|
||||
// Ensure that a new module can be extracted and installed.
|
||||
$updaters = drupal_get_updaters();
|
||||
$moduleUpdater = $updaters['module']['class'];
|
||||
$installedInfoFilePath = $this->container->get('update.root') . '/' . $moduleUpdater::getRootDirectoryRelativePath() . '/update_test_new_module/update_test_new_module.info.yml';
|
||||
$this->assertFileNotExists($installedInfoFilePath);
|
||||
$validArchiveFile = __DIR__ . '/../../update_test_new_module/8.x-1.0/update_test_new_module.tar.gz';
|
||||
$edit = [
|
||||
'files[project_upload]' => $validArchiveFile,
|
||||
];
|
||||
$this->drupalPostForm('admin/modules/install', $edit, t('Install'));
|
||||
// Check that submitting the form takes the user to authorize.php.
|
||||
$this->assertUrl('core/authorize.php');
|
||||
$this->assertTitle('Update manager | Drupal');
|
||||
// Check for a success message on the page, and check that the installed
|
||||
// module now exists in the expected place in the filesystem.
|
||||
$this->assertRaw(t('Installed %project_name successfully', ['%project_name' => 'update_test_new_module']));
|
||||
$this->assertFileExists($installedInfoFilePath);
|
||||
// Ensure the links are relative to the site root and not
|
||||
// core/authorize.php.
|
||||
$this->assertLink(t('Install another module'));
|
||||
$this->assertLinkByHref(Url::fromRoute('update.module_install')->toString());
|
||||
$this->assertLink(t('Enable newly added modules'));
|
||||
$this->assertLinkByHref(Url::fromRoute('system.modules_list')->toString());
|
||||
$this->assertLink(t('Administration pages'));
|
||||
$this->assertLinkByHref(Url::fromRoute('system.admin')->toString());
|
||||
// Ensure we can reach the "Install another module" link.
|
||||
$this->clickLink(t('Install another module'));
|
||||
$this->assertSession()->statusCodeEquals(200);
|
||||
$this->assertUrl('admin/modules/install');
|
||||
|
||||
// Check that the module has the correct version before trying to update
|
||||
// it. Since the module is installed in sites/simpletest, which only the
|
||||
// child site has access to, standard module API functions won't find it
|
||||
// when called here. To get the version, the info file must be parsed
|
||||
// directly instead.
|
||||
$info_parser = new InfoParserDynamic(DRUPAL_ROOT);
|
||||
$info = $info_parser->parse($installedInfoFilePath);
|
||||
$this->assertEqual($info['version'], '8.x-1.0');
|
||||
|
||||
// Enable the module.
|
||||
$this->drupalPostForm('admin/modules', ['modules[update_test_new_module][enable]' => TRUE], t('Install'));
|
||||
|
||||
// Define the update XML such that the new module downloaded above needs an
|
||||
// update from 8.x-1.0 to 8.x-1.1.
|
||||
$update_test_config = $this->config('update_test.settings');
|
||||
$system_info = [
|
||||
'update_test_new_module' => [
|
||||
'project' => 'update_test_new_module',
|
||||
],
|
||||
];
|
||||
$update_test_config->set('system_info', $system_info)->save();
|
||||
$xml_mapping = [
|
||||
'update_test_new_module' => '1_1',
|
||||
];
|
||||
$this->refreshUpdateStatus($xml_mapping);
|
||||
|
||||
// Run the updates for the new module.
|
||||
$this->drupalPostForm('admin/reports/updates/update', ['projects[update_test_new_module]' => TRUE], t('Download these updates'));
|
||||
$this->drupalPostForm(NULL, ['maintenance_mode' => FALSE], t('Continue'));
|
||||
$this->assertText(t('Update was completed successfully.'));
|
||||
$this->assertRaw(t('Installed %project_name successfully', ['%project_name' => 'update_test_new_module']));
|
||||
|
||||
// Parse the info file again to check that the module has been updated to
|
||||
// 8.x-1.1.
|
||||
$info = $info_parser->parse($installedInfoFilePath);
|
||||
$this->assertEqual($info['version'], '8.x-1.1');
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that archiver extensions are properly merged in the UI.
|
||||
*/
|
||||
public function testFileNameExtensionMerging() {
|
||||
$this->drupalGet('admin/modules/install');
|
||||
// Make sure the bogus extension supported by update_test.module is there.
|
||||
$this->assertPattern('/file extensions are supported:.*update-test-extension/', "Found 'update-test-extension' extension.");
|
||||
// Make sure it didn't clobber the first option from core.
|
||||
$this->assertPattern('/file extensions are supported:.*tar/', "Found 'tar' extension.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the messages on update manager pages when missing a security update.
|
||||
*/
|
||||
public function testUpdateManagerCoreSecurityUpdateMessages() {
|
||||
$setting = [
|
||||
'#all' => [
|
||||
'version' => '8.0.0',
|
||||
],
|
||||
];
|
||||
$this->config('update_test.settings')
|
||||
->set('system_info', $setting)
|
||||
->set('xml_map', ['drupal' => '0.2-sec'])
|
||||
->save();
|
||||
$this->config('update.settings')
|
||||
->set('fetch.url', Url::fromRoute('update_test.update_test')->setAbsolute()->toString())
|
||||
->save();
|
||||
// Initialize the update status.
|
||||
$this->drupalGet('admin/reports/updates');
|
||||
|
||||
// Now, make sure none of the Update manager pages have duplicate messages
|
||||
// about core missing a security update.
|
||||
|
||||
$this->drupalGet('admin/modules/install');
|
||||
$this->assertNoText(t('There is a security update available for your version of Drupal.'));
|
||||
|
||||
$this->drupalGet('admin/modules/update');
|
||||
$this->assertNoText(t('There is a security update available for your version of Drupal.'));
|
||||
|
||||
$this->drupalGet('admin/appearance/install');
|
||||
$this->assertNoText(t('There is a security update available for your version of Drupal.'));
|
||||
|
||||
$this->drupalGet('admin/appearance/update');
|
||||
$this->assertNoText(t('There is a security update available for your version of Drupal.'));
|
||||
|
||||
$this->drupalGet('admin/reports/updates/install');
|
||||
$this->assertNoText(t('There is a security update available for your version of Drupal.'));
|
||||
|
||||
$this->drupalGet('admin/reports/updates/update');
|
||||
$this->assertNoText(t('There is a security update available for your version of Drupal.'));
|
||||
|
||||
$this->drupalGet('admin/update/ready');
|
||||
$this->assertNoText(t('There is a security update available for your version of Drupal.'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests only an *.info.yml file are detected without supporting files.
|
||||
*/
|
||||
public function testUpdateDirectory() {
|
||||
$type = Updater::getUpdaterFromDirectory($this->root . '/core/modules/update/tests/modules/aaa_update_test');
|
||||
$this->assertEqual($type, 'Drupal\\Core\\Updater\\Module', 'Detected a Module');
|
||||
|
||||
$type = Updater::getUpdaterFromDirectory($this->root . '/core/modules/update/tests/themes/update_test_basetheme');
|
||||
$this->assertEqual($type, 'Drupal\\Core\\Updater\\Theme', 'Detected a Theme.');
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Kernel\Migrate\d6;
|
||||
|
||||
use Drupal\Tests\SchemaCheckTestTrait;
|
||||
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
|
||||
|
||||
/**
|
||||
* Upgrade variables to update.settings.yml.
|
||||
*
|
||||
* @group migrate_drupal_6
|
||||
*/
|
||||
class MigrateUpdateConfigsTest extends MigrateDrupal6TestBase {
|
||||
|
||||
use SchemaCheckTestTrait;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['update'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$this->executeMigration('update_settings');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests migration of update variables to update.settings.yml.
|
||||
*/
|
||||
public function testUpdateSettings() {
|
||||
$config = $this->config('update.settings');
|
||||
$this->assertIdentical(2, $config->get('fetch.max_attempts'));
|
||||
$this->assertIdentical('http://updates.drupal.org/release-history', $config->get('fetch.url'));
|
||||
$this->assertIdentical('all', $config->get('notification.threshold'));
|
||||
$this->assertIdentical([], $config->get('notification.emails'));
|
||||
$this->assertIdentical(7, $config->get('check.interval_days'));
|
||||
$this->assertConfigSchema(\Drupal::service('config.typed'), 'update.settings', $config->get());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Kernel;
|
||||
|
||||
use Drupal\KernelTests\KernelTestBase;
|
||||
|
||||
/**
|
||||
* Tests the update_delete_file_if_stale() function.
|
||||
*
|
||||
* @group update
|
||||
*/
|
||||
class UpdateDeleteFileIfStaleTest extends KernelTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected static $modules = [
|
||||
'system',
|
||||
'update',
|
||||
];
|
||||
|
||||
/**
|
||||
* Tests the deletion of stale files.
|
||||
*/
|
||||
public function testUpdateDeleteFileIfStale() {
|
||||
$file_system = $this->container->get('file_system');
|
||||
|
||||
$file_name = $file_system->saveData($this->randomMachineName(), 'public://');
|
||||
$this->assertNotNull($file_name);
|
||||
|
||||
// During testing the file change and the stale checking occurs in the same
|
||||
// request, so the beginning of request will be before the file changes and
|
||||
// REQUEST_TIME - $filectime is negative or zero. Set the maximum age to a
|
||||
// number even smaller than that.
|
||||
$this->config('system.file')
|
||||
->set('temporary_maximum_age', -100000)
|
||||
->save();
|
||||
|
||||
$file_path = $file_system->realpath($file_name);
|
||||
update_delete_file_if_stale($file_path);
|
||||
|
||||
$this->assertFileNotExists($file_path);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Kernel;
|
||||
|
||||
use Drupal\KernelTests\KernelTestBase;
|
||||
|
||||
/**
|
||||
* Tests update report functionality.
|
||||
*
|
||||
* @covers template_preprocess_update_report()
|
||||
* @group update
|
||||
*/
|
||||
class UpdateReportTest extends KernelTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected static $modules = [
|
||||
'system',
|
||||
'update',
|
||||
];
|
||||
|
||||
/**
|
||||
* @dataProvider providerTemplatePreprocessUpdateReport
|
||||
*/
|
||||
public function testTemplatePreprocessUpdateReport($variables) {
|
||||
\Drupal::moduleHandler()->loadInclude('update', 'inc', 'update.report');
|
||||
|
||||
// The function should run without an exception being thrown when the value
|
||||
// of $variables['data'] is not set or is not an array.
|
||||
template_preprocess_update_report($variables);
|
||||
|
||||
// Test that the key "no_updates_message" has been set.
|
||||
$this->assertArrayHasKey('no_updates_message', $variables);
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides data for testTemplatePreprocessUpdateReport().
|
||||
*
|
||||
* @return array
|
||||
* Array of $variables for template_preprocess_update_report().
|
||||
*/
|
||||
public function providerTemplatePreprocessUpdateReport() {
|
||||
return [
|
||||
'$variables with data not set' => [
|
||||
[],
|
||||
],
|
||||
'$variables with data as an interger' => [
|
||||
['data' => 4],
|
||||
],
|
||||
'$variables with data as a string' => [
|
||||
['data' => 'I am a string'],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Unit\Menu;
|
||||
|
||||
use Drupal\Tests\Core\Menu\LocalTaskIntegrationTestBase;
|
||||
|
||||
/**
|
||||
* Tests existence of update local tasks.
|
||||
*
|
||||
* @group update
|
||||
*/
|
||||
class UpdateLocalTasksTest extends LocalTaskIntegrationTestBase {
|
||||
|
||||
protected function setUp() {
|
||||
$this->directoryList = ['update' => 'core/modules/update'];
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks update report tasks.
|
||||
*
|
||||
* @dataProvider getUpdateReportRoutes
|
||||
*/
|
||||
public function testUpdateReportLocalTasks($route) {
|
||||
$this->assertLocalTasks($route, [
|
||||
0 => ['update.status', 'update.settings', 'update.report_update'],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides a list of report routes to test.
|
||||
*/
|
||||
public function getUpdateReportRoutes() {
|
||||
return [
|
||||
['update.status'],
|
||||
['update.settings'],
|
||||
['update.report_update'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks update module tasks.
|
||||
*
|
||||
* @dataProvider getUpdateModuleRoutes
|
||||
*/
|
||||
public function testUpdateModuleLocalTasks($route) {
|
||||
$this->assertLocalTasks($route, [
|
||||
0 => ['update.module_update'],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides a list of module routes to test.
|
||||
*/
|
||||
public function getUpdateModuleRoutes() {
|
||||
return [
|
||||
['update.module_update'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks update theme tasks.
|
||||
*
|
||||
* @dataProvider getUpdateThemeRoutes
|
||||
*/
|
||||
public function testUpdateThemeLocalTasks($route) {
|
||||
$this->assertLocalTasks($route, [
|
||||
0 => ['update.theme_update'],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides a list of theme routes to test.
|
||||
*/
|
||||
public function getUpdateThemeRoutes() {
|
||||
return [
|
||||
['update.theme_update'],
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,400 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Unit;
|
||||
|
||||
use Drupal\Tests\UnitTestCase;
|
||||
use Drupal\update\ModuleVersion;
|
||||
|
||||
/**
|
||||
* @coversDefaultClass \Drupal\update\ModuleVersion
|
||||
*
|
||||
* @group update
|
||||
*/
|
||||
class ModuleVersionTest extends UnitTestCase {
|
||||
|
||||
/**
|
||||
* @covers ::getMajorVersion
|
||||
*
|
||||
* @dataProvider providerVersionInfos
|
||||
*
|
||||
* @param string $version
|
||||
* The version string to test.
|
||||
* @param array $expected_version_info
|
||||
* The expected version information.
|
||||
*/
|
||||
public function testGetMajorVersion($version, array $expected_version_info) {
|
||||
$version = ModuleVersion::createFromVersionString($version);
|
||||
$this->assertSame($expected_version_info['major'], $version->getMajorVersion());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::getVersionExtra
|
||||
*
|
||||
* @dataProvider providerVersionInfos
|
||||
*
|
||||
* @param string $version
|
||||
* The version string to test.
|
||||
* @param array $expected_version_info
|
||||
* The expected version information.
|
||||
*/
|
||||
public function testGetVersionExtra($version, array $expected_version_info) {
|
||||
$version = ModuleVersion::createFromVersionString($version);
|
||||
$this->assertSame($expected_version_info['extra'], $version->getVersionExtra());
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for expected version information.
|
||||
*
|
||||
* @return array
|
||||
* Arrays of version information.
|
||||
*/
|
||||
public function providerVersionInfos() {
|
||||
// Data provider values are:
|
||||
// - The version number to test.
|
||||
// - Array of expected version information with the following keys:
|
||||
// -'major': The expected result from ::getMajorVersion().
|
||||
// -'extra': The expected result from ::getVersionExtra().
|
||||
return [
|
||||
'8.x-1.3' => [
|
||||
'8.x-1.3',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => NULL,
|
||||
],
|
||||
],
|
||||
'8.x-1.0' => [
|
||||
'8.x-1.0',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => NULL,
|
||||
],
|
||||
],
|
||||
'8.x-1.0-alpha1' => [
|
||||
'8.x-1.0-alpha1',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => 'alpha1',
|
||||
],
|
||||
],
|
||||
'8.x-1.3-alpha1' => [
|
||||
'8.x-1.3-alpha1',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => 'alpha1',
|
||||
],
|
||||
],
|
||||
'0.1' => [
|
||||
'0.1',
|
||||
[
|
||||
'major' => '0',
|
||||
'extra' => NULL,
|
||||
],
|
||||
],
|
||||
'1.0' => [
|
||||
'1.0',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => NULL,
|
||||
],
|
||||
],
|
||||
'1.3' => [
|
||||
'1.3',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => NULL,
|
||||
],
|
||||
],
|
||||
'1.0-alpha1' => [
|
||||
'1.0-alpha1',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => 'alpha1',
|
||||
],
|
||||
],
|
||||
'1.3-alpha1' => [
|
||||
'1.3-alpha1',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => 'alpha1',
|
||||
],
|
||||
],
|
||||
'0.2.0' => [
|
||||
'0.2.0',
|
||||
[
|
||||
'major' => '0',
|
||||
'extra' => NULL,
|
||||
],
|
||||
],
|
||||
'1.2.0' => [
|
||||
'1.2.0',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => NULL,
|
||||
],
|
||||
],
|
||||
'1.0.3' => [
|
||||
'1.0.3',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => NULL,
|
||||
],
|
||||
],
|
||||
'1.2.3' => [
|
||||
'1.2.3',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => NULL,
|
||||
],
|
||||
],
|
||||
'1.2.0-alpha1' => [
|
||||
'1.2.0-alpha1',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => 'alpha1',
|
||||
],
|
||||
],
|
||||
'1.2.3-alpha1' => [
|
||||
'1.2.3-alpha1',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => 'alpha1',
|
||||
],
|
||||
],
|
||||
'8.x-1.x-dev' => [
|
||||
'8.x-1.x-dev',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => 'dev',
|
||||
],
|
||||
],
|
||||
'8.x-8.x-dev' => [
|
||||
'8.x-8.x-dev',
|
||||
[
|
||||
'major' => '8',
|
||||
'extra' => 'dev',
|
||||
],
|
||||
],
|
||||
'1.x-dev' => [
|
||||
'1.x-dev',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => 'dev',
|
||||
],
|
||||
],
|
||||
'8.x-dev' => [
|
||||
'8.x-dev',
|
||||
[
|
||||
'major' => '8',
|
||||
'extra' => 'dev',
|
||||
],
|
||||
],
|
||||
'1.0.x-dev' => [
|
||||
'1.0.x-dev',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => 'dev',
|
||||
],
|
||||
],
|
||||
'1.2.x-dev' => [
|
||||
'1.2.x-dev',
|
||||
[
|
||||
'major' => '1',
|
||||
'extra' => 'dev',
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::createFromVersionString
|
||||
*
|
||||
* @dataProvider providerInvalidVersionNumber
|
||||
*
|
||||
* @param string $version
|
||||
* The version string to test.
|
||||
*/
|
||||
public function testInvalidVersionNumber($version) {
|
||||
$this->expectException(\UnexpectedValueException::class);
|
||||
$this->expectExceptionMessage("Unexpected version number in: $version");
|
||||
ModuleVersion::createFromVersionString($version);
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testInvalidVersionNumber().
|
||||
*/
|
||||
public function providerInvalidVersionNumber() {
|
||||
return static::createKeyedTestCases([
|
||||
'',
|
||||
'8',
|
||||
'x',
|
||||
'xx',
|
||||
'8.x-',
|
||||
'8.x',
|
||||
'.x',
|
||||
'.0',
|
||||
'.1',
|
||||
'.1.0',
|
||||
'1.0.',
|
||||
'x.1',
|
||||
'1.x.0',
|
||||
'1.1.x',
|
||||
'1.1.x-extra',
|
||||
'x.1.1',
|
||||
'1.1.1.1',
|
||||
'1.1.1.0',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::createFromVersionString
|
||||
*
|
||||
* @dataProvider providerInvalidVersionCorePrefix
|
||||
*
|
||||
* @param string $version
|
||||
* The version string to test.
|
||||
*/
|
||||
public function testInvalidVersionCorePrefix($version) {
|
||||
$this->expectException(\UnexpectedValueException::class);
|
||||
$this->expectExceptionMessage("Unexpected version core prefix in $version. The only core prefix expected in \Drupal\update\ModuleVersion is: 8.x-");
|
||||
ModuleVersion::createFromVersionString($version);
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testInvalidVersionCorePrefix().
|
||||
*/
|
||||
public function providerInvalidVersionCorePrefix() {
|
||||
return static::createKeyedTestCases([
|
||||
'6.x-1.0',
|
||||
'7.x-1.x',
|
||||
'9.x-1.x',
|
||||
'10.x-1.x',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::createFromSupportBranch
|
||||
*
|
||||
* @dataProvider providerInvalidBranchCorePrefix
|
||||
*
|
||||
* @param string $branch
|
||||
* The branch to test.
|
||||
*/
|
||||
public function testInvalidBranchCorePrefix($branch) {
|
||||
$this->expectException(\UnexpectedValueException::class);
|
||||
$this->expectExceptionMessage("Unexpected version core prefix in {$branch}0. The only core prefix expected in \Drupal\update\ModuleVersion is: 8.x-");
|
||||
ModuleVersion::createFromSupportBranch($branch);
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testInvalidBranchCorePrefix().
|
||||
*/
|
||||
public function providerInvalidBranchCorePrefix() {
|
||||
return static::createKeyedTestCases([
|
||||
'6.x-1.',
|
||||
'7.x-1.',
|
||||
'9.x-1.',
|
||||
'10.x-1.',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::createFromSupportBranch
|
||||
*
|
||||
* @dataProvider providerCreateFromSupportBranch
|
||||
*
|
||||
* @param string $branch
|
||||
* The branch to test.
|
||||
* @param string $expected_major
|
||||
* The expected major version.
|
||||
*/
|
||||
public function testCreateFromSupportBranch($branch, $expected_major) {
|
||||
$version = ModuleVersion::createFromSupportBranch($branch);
|
||||
$this->assertInstanceOf(ModuleVersion::class, $version);
|
||||
$this->assertSame($expected_major, $version->getMajorVersion());
|
||||
// Version extra can't be determined from a branch.
|
||||
$this->assertSame(NULL, $version->getVersionExtra());
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testCreateFromSupportBranch().
|
||||
*/
|
||||
public function providerCreateFromSupportBranch() {
|
||||
// Data provider values are:
|
||||
// - The version number to test.
|
||||
// - Array of expected version information with the following keys:
|
||||
// -'major': The expected result from ::getMajorVersion().
|
||||
// -'extra': The expected result from ::getVersionExtra().
|
||||
return [
|
||||
'0.' => [
|
||||
'0.',
|
||||
'0',
|
||||
],
|
||||
'1.' => [
|
||||
'1.',
|
||||
'1',
|
||||
],
|
||||
'0.1.' => [
|
||||
'0.1.',
|
||||
'0',
|
||||
],
|
||||
'1.2.' => [
|
||||
'1.2.',
|
||||
'1',
|
||||
],
|
||||
'8.x-1.' => [
|
||||
'8.x-1.',
|
||||
'1',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::createFromSupportBranch
|
||||
*
|
||||
* @dataProvider provideInvalidBranch
|
||||
*
|
||||
* @param string $branch
|
||||
* The branch to test.
|
||||
*/
|
||||
public function testInvalidBranch($branch) {
|
||||
$this->expectException(\UnexpectedValueException::class);
|
||||
$this->expectExceptionMessage("Invalid support branch: $branch");
|
||||
ModuleVersion::createFromSupportBranch($branch);
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testInvalidBranch().
|
||||
*/
|
||||
public function provideInvalidBranch() {
|
||||
return self::createKeyedTestCases([
|
||||
'8.x-1.0',
|
||||
'8.x-2.x',
|
||||
'2.x-1.0',
|
||||
'1.1',
|
||||
'1.x',
|
||||
'1.1.x',
|
||||
'1.1.1',
|
||||
'1.1.1.1',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates test case arrays for data provider methods.
|
||||
*
|
||||
* @param string[] $test_arguments
|
||||
* The test arguments.
|
||||
*
|
||||
* @return array
|
||||
* An array with $test_arguments as keys and each element of $test_arguments
|
||||
* as a single item array
|
||||
*/
|
||||
protected static function createKeyedTestCases(array $test_arguments) {
|
||||
return array_combine(
|
||||
$test_arguments,
|
||||
array_map(function ($test_argument) {
|
||||
return [$test_argument];
|
||||
}, $test_arguments)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Unit;
|
||||
|
||||
use Drupal\Tests\UnitTestCase;
|
||||
use Drupal\update\ProjectCoreCompatibility;
|
||||
|
||||
/**
|
||||
* @coversDefaultClass \Drupal\update\ProjectCoreCompatibility
|
||||
*
|
||||
* @group update
|
||||
*/
|
||||
class ProjectCoreCompatibilityTest extends UnitTestCase {
|
||||
|
||||
/**
|
||||
* @covers ::setReleaseMessage
|
||||
* @dataProvider providerSetProjectCoreCompatibilityRanges
|
||||
*/
|
||||
public function testSetProjectCoreCompatibilityRanges(array $project_data, $core_data, array $core_releases, array $expected_releases, array $expected_security_updates) {
|
||||
$project_compatibility = new ProjectCoreCompatibility($core_data, $core_releases);
|
||||
$project_compatibility->setStringTranslation($this->getStringTranslationStub());
|
||||
$project_compatibility->setReleaseMessage($project_data);
|
||||
$this->assertSame($expected_releases, $project_data['releases']);
|
||||
$this->assertSame($expected_security_updates, $project_data['security updates']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testSetProjectCoreCompatibilityRanges().
|
||||
*/
|
||||
public function providerSetProjectCoreCompatibilityRanges() {
|
||||
$test_cases['no 9 releases'] = [
|
||||
'project_data' => [
|
||||
'recommended' => '1.0.1',
|
||||
'latest_version' => '1.2.3',
|
||||
'also' => [
|
||||
'1.2.4',
|
||||
'1.2.5',
|
||||
'1.2.6',
|
||||
],
|
||||
'releases' => [
|
||||
'1.0.1' => [
|
||||
'core_compatibility' => '8.x',
|
||||
],
|
||||
'1.2.3' => [
|
||||
'core_compatibility' => '^8.9 || ^9',
|
||||
],
|
||||
'1.2.4' => [
|
||||
'core_compatibility' => '^8.9.2 || ^9',
|
||||
],
|
||||
'1.2.6' => [],
|
||||
],
|
||||
'security updates' => [
|
||||
'1.2.5' => [
|
||||
'core_compatibility' => '8.9.0 || 8.9.2 || ^9.0.1',
|
||||
],
|
||||
],
|
||||
],
|
||||
'core_data' => [
|
||||
'existing_version' => '8.8.0',
|
||||
],
|
||||
'core_releases' => [
|
||||
'8.8.0-alpha1' => [],
|
||||
'8.8.0-beta1' => [],
|
||||
'8.8.0-rc1' => [],
|
||||
'8.8.0' => [],
|
||||
'8.8.1' => [],
|
||||
'8.8.2' => [],
|
||||
'8.9.0' => [],
|
||||
'8.9.1' => [],
|
||||
'8.9.2' => [],
|
||||
],
|
||||
'expected_releases' => [
|
||||
'1.0.1' => [
|
||||
'core_compatibility' => '8.x',
|
||||
'core_compatible' => TRUE,
|
||||
'core_compatibility_message' => 'Requires Drupal core: 8.8.0 to 8.9.2',
|
||||
],
|
||||
'1.2.3' => [
|
||||
'core_compatibility' => '^8.9 || ^9',
|
||||
'core_compatible' => FALSE,
|
||||
'core_compatibility_message' => 'Requires Drupal core: 8.9.0 to 8.9.2',
|
||||
],
|
||||
'1.2.4' => [
|
||||
'core_compatibility' => '^8.9.2 || ^9',
|
||||
'core_compatible' => FALSE,
|
||||
'core_compatibility_message' => 'Requires Drupal core: 8.9.2',
|
||||
],
|
||||
'1.2.6' => [],
|
||||
],
|
||||
'expected_security_updates' => [
|
||||
'1.2.5' => [
|
||||
'core_compatibility' => '8.9.0 || 8.9.2 || ^9.0.1',
|
||||
'core_compatible' => FALSE,
|
||||
'core_compatibility_message' => 'Requires Drupal core: 8.9.0, 8.9.2',
|
||||
],
|
||||
],
|
||||
];
|
||||
// Ensure that when only Drupal 9 pre-releases none of the expected ranges
|
||||
// change.
|
||||
$test_cases['with 9 pre releases'] = $test_cases['no 9 releases'];
|
||||
$test_cases['with 9 pre releases']['core_releases'] += [
|
||||
'9.0.0-alpha1' => [],
|
||||
'9.0.0-beta1' => [],
|
||||
'9.0.0-rc1' => [],
|
||||
];
|
||||
// Ensure that when the Drupal 9 full release are added the expected ranges
|
||||
// do change.
|
||||
$test_cases['with 9 full releases'] = $test_cases['with 9 pre releases'];
|
||||
$test_cases['with 9 full releases']['core_releases'] += [
|
||||
'9.0.0' => [],
|
||||
'9.0.1' => [],
|
||||
'9.0.2' => [],
|
||||
];
|
||||
$test_cases['with 9 full releases']['expected_releases'] = [
|
||||
'1.0.1' => [
|
||||
'core_compatibility' => '8.x',
|
||||
'core_compatible' => TRUE,
|
||||
'core_compatibility_message' => 'Requires Drupal core: 8.8.0 to 8.9.2',
|
||||
],
|
||||
'1.2.3' => [
|
||||
'core_compatibility' => '^8.9 || ^9',
|
||||
'core_compatible' => FALSE,
|
||||
'core_compatibility_message' => 'Requires Drupal core: 8.9.0 to 9.0.2',
|
||||
],
|
||||
'1.2.4' => [
|
||||
'core_compatibility' => '^8.9.2 || ^9',
|
||||
'core_compatible' => FALSE,
|
||||
'core_compatibility_message' => 'Requires Drupal core: 8.9.2 to 9.0.2',
|
||||
],
|
||||
'1.2.6' => [],
|
||||
];
|
||||
$test_cases['with 9 full releases']['expected_security_updates'] = [
|
||||
'1.2.5' => [
|
||||
'core_compatibility' => '8.9.0 || 8.9.2 || ^9.0.1',
|
||||
'core_compatible' => FALSE,
|
||||
'core_compatibility_message' => 'Requires Drupal core: 8.9.0, 8.9.2, 9.0.1 to 9.0.2',
|
||||
],
|
||||
];
|
||||
return $test_cases;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Unit;
|
||||
|
||||
use Drupal\Tests\UnitTestCase;
|
||||
use Drupal\update\UpdateFetcher;
|
||||
|
||||
/**
|
||||
* Tests update functionality unrelated to the database.
|
||||
*
|
||||
* @group update
|
||||
*/
|
||||
class UpdateFetcherTest extends UnitTestCase {
|
||||
|
||||
/**
|
||||
* The update fetcher to use.
|
||||
*
|
||||
* @var \Drupal\update\UpdateFetcher
|
||||
*/
|
||||
protected $updateFetcher;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
$config_factory = $this->getConfigFactoryStub(['update.settings' => ['fetch_url' => 'http://www.example.com']]);
|
||||
$http_client_mock = $this->createMock('\GuzzleHttp\ClientInterface');
|
||||
$this->updateFetcher = new UpdateFetcher($config_factory, $http_client_mock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that buildFetchUrl() builds the URL correctly.
|
||||
*
|
||||
* @param array $project
|
||||
* A keyed array of project information matching results from
|
||||
* \Drupal\update\UpdateManager::getProjects().
|
||||
* @param string $site_key
|
||||
* A string to mimic an anonymous site key hash.
|
||||
* @param string $expected
|
||||
* The expected url returned from UpdateFetcher::buildFetchUrl()
|
||||
*
|
||||
* @dataProvider providerTestUpdateBuildFetchUrl
|
||||
*
|
||||
* @see \Drupal\update\UpdateFetcher::buildFetchUrl()
|
||||
*/
|
||||
public function testUpdateBuildFetchUrl(array $project, $site_key, $expected) {
|
||||
$url = $this->updateFetcher->buildFetchUrl($project, $site_key);
|
||||
$this->assertEquals($url, $expected);
|
||||
}
|
||||
|
||||
/**
|
||||
* Provide test data for self::testUpdateBuildFetchUrl().
|
||||
*
|
||||
* @return array
|
||||
* An array of arrays, each containing:
|
||||
* - 'project' - An array matching a project's .info file structure.
|
||||
* - 'site_key' - An arbitrary site key.
|
||||
* - 'expected' - The expected url from UpdateFetcher::buildFetchUrl().
|
||||
*/
|
||||
public function providerTestUpdateBuildFetchUrl() {
|
||||
$data = [];
|
||||
|
||||
// First test that we didn't break the trivial case.
|
||||
$project['name'] = 'update_test';
|
||||
$project['project_type'] = '';
|
||||
$project['info']['version'] = '';
|
||||
$project['info']['project status url'] = 'http://www.example.com';
|
||||
$project['includes'] = ['module1' => 'Module 1', 'module2' => 'Module 2'];
|
||||
$site_key = '';
|
||||
$expected = "http://www.example.com/{$project['name']}/current";
|
||||
|
||||
$data[] = [$project, $site_key, $expected];
|
||||
|
||||
// For disabled projects it shouldn't add the site key either.
|
||||
$site_key = 'site_key';
|
||||
$project['project_type'] = 'disabled';
|
||||
$expected = "http://www.example.com/{$project['name']}/current";
|
||||
|
||||
$data[] = [$project, $site_key, $expected];
|
||||
|
||||
// For enabled projects, test adding the site key.
|
||||
$project['project_type'] = '';
|
||||
$expected = "http://www.example.com/{$project['name']}/current";
|
||||
$expected .= '?site_key=site_key';
|
||||
$expected .= '&list=' . rawurlencode('module1,module2');
|
||||
|
||||
$data[] = [$project, $site_key, $expected];
|
||||
|
||||
// Test when the URL contains a question mark.
|
||||
$project['info']['project status url'] = 'http://www.example.com/?project=';
|
||||
$expected = "http://www.example.com/?project=/{$project['name']}/current";
|
||||
$expected .= '&site_key=site_key';
|
||||
$expected .= '&list=' . rawurlencode('module1,module2');
|
||||
|
||||
$data[] = [$project, $site_key, $expected];
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
name: 'Update test base theme'
|
||||
type: theme
|
||||
base theme: stable
|
||||
description: 'Test theme which acts as a base theme for other test subthemes.'
|
||||
version: VERSION
|
||||
core: 8.x
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
name: 'Update test subtheme'
|
||||
type: theme
|
||||
description: 'Test theme which uses update_test_basetheme as the base theme.'
|
||||
version: VERSION
|
||||
core: 8.x
|
||||
base theme: update_test_basetheme
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Reference in New Issue
Block a user