This is a follow-up for #2824572-23: Write EntityResourceTestBase subclasses for every other entity type.:

@Wim Leers:

Once we have test coverage for all content entity types, we should add a test that checks that all core content entity types have functional REST test coverage. That way, we ensure that no new content entity types can be added that do not have functional REST test coverage!

Same for config entity types, of course.

CommentFileSizeAuthor
#58 xjmepic.png1.01 MBvaplas
#55 2868035-55.patch5.69 KBWim Leers
#55 interdiff.txt1.05 KBWim Leers
#2 2868035-2.patch3.16 KBvaplas
#4 2868035-4.patch3.18 KBvaplas
#4 interdiff-2-4.patch824 bytesvaplas
#7 2868035-7.patch3.23 KBvaplas
#7 interdiff-4-7.txt2.15 KBvaplas
#9 2868035-9.patch3.27 KBvaplas
#9 interdiff-7-9.txt1.09 KBvaplas
#13 interdiff.txt986 bytesWim Leers
#13 2868035-13.patch3.63 KBWim Leers
#14 interdiff.txt1.25 KBWim Leers
#14 2868035-14.patch4.14 KBWim Leers
#16 interdiff.txt3.18 KBWim Leers
#16 2868035-16.patch5.13 KBWim Leers
#21 interdiff.txt1.2 KBWim Leers
#21 2868035-21.patch5.17 KBWim Leers
#36 interdiff.txt2.9 KBWim Leers
#36 2868035-36.patch5.31 KBWim Leers
#37 interdiff.txt1.07 KBWim Leers
#37 2868035-37.patch5.61 KBWim Leers
#43 2868035-43.patch5.62 KBvaplas
#43 interdiff-37-43.txt1.32 KBvaplas
#45 2868035-45.patch5.55 KBvaplas
#45 interdiff-43-45.txt1.96 KBvaplas
#47 interdiff.txt896 bytesWim Leers
#47 2868035-47.patch5.66 KBWim Leers
#48 interdiff-47-48.txt765 bytesvaplas
#48 2868035-48.patch5.54 KBvaplas
Members fund testing for the Drupal project. Drupal Association Learn more

Comments

vaplas created an issue. See original summary.

vaplas’s picture

Status: Active » Needs review
FileSize
3.16 KB

Status: Needs review » Needs work

The last submitted patch, 2: 2868035-2.patch, failed testing.

vaplas’s picture

vaplas’s picture

Status: Needs work » Needs review

Status: Needs review » Needs work

The last submitted patch, 4: interdiff-2-4.patch, failed testing.

vaplas’s picture

Status: Needs work » Needs review
FileSize
3.23 KB
2.15 KB
  1. Added start slash to classes.
  2. Changed bad to good in progress.
  3. Fixed roof of message.

Status: Needs review » Needs work

The last submitted patch, 7: 2868035-7.patch, failed testing.

vaplas’s picture

Status: Needs work » Needs review
FileSize
3.27 KB
1.09 KB

Hah!

  • basename - works only for Windows (because use '/' instead of '\'). Replaced by explode.
  • The roof did not fix. Added 'sun' to prevent the cutting of spaces at the beginning of the message.

Status: Needs review » Needs work

The last submitted patch, 9: 2868035-9.patch, failed testing.

Wim Leers’s picture

Title: Test that all core content entity types have functional REST test coverage » [PP-1] Test that all core content entity types have functional REST test coverage
Status: Needs work » Postponed

@vaplas: thanks so much for creating this issue! And then on top of that, you also created a patch! Awesome :)

I think this looks ready. We now need to get it to green… which means that we need to fix every issue mentioned in #2824572: Write EntityResourceTestBase subclasses for every other entity type. :) So postponing it on that!


+++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
@@ -0,0 +1,119 @@
+      ________________________
+     /           Hi!          \\
+    | What about a few of cool |
+    |        REST tests?       |
+    |                          |
+    |     Progress: $g/$a.     |
+    | ________________________/
+    |/
+//  o
+l'>
+ll
+llama
+|| ||
+'' ''
+";

HAHAHAHHAHAHAHAHAHAHAHHAHAHAHAHAHAHAHAHAHAHAH

THANK YOU :D

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Wim Leers’s picture

Priority: Normal » Major
Status: Postponed » Needs review
Issue tags: +API-First Initiative
FileSize
986 bytes
3.63 KB

Now that #2824572: Write EntityResourceTestBase subclasses for every other entity type. is finally reaching the end, let's drive this patch to completion.

Wim Leers’s picture

FileSize
1.25 KB
4.14 KB

content_moderation_rest_resource_alter() ensures the ContentModerationState entity type is never exposed via REST. We need to take removed REST resource plugin definitions into account.

The last submitted patch, 13: 2868035-13.patch, failed testing. View results

Wim Leers’s picture

FileSize
3.18 KB
5.13 KB

Additionally, REST test coverage for entity types being added by experimental modules don't live in \Drupal\Tests\rest, but in Drupal\Tests\experimental_module_name\Functional\Rest.

This updates the test coverage to look in multiple places for the test coverage.

Wim Leers’s picture

#13 is the same as #9, just with added comments. But there's >5 months of progress with REST test coverage going from #9's test result to #13's.

#9:

Drupal\Tests\rest\Functional\EntityResource\EntityResourceRestTestCoverageTest::testEntityTypeRestTestCoverage
☼
      ________________________
     /           Hi!          \
    | What about a few of cool |
    |        REST tests?       |
    |                          |
    |     Progress: 19/42.     |
    | ________________________/
    |/
//  o
l'>
ll
llama
|| ||
'' ''

Failed asserting that Array &0 (
    0 => 'Feed (Drupal\aggregator\Entity\Feed)'
    1 => 'BlockContentType (Drupal\block_content\Entity\BlockContentType)'
    2 => 'BlockContent (Drupal\block_content\Entity\BlockContent)'
    3 => 'Message (Drupal\contact\Entity\Message)'
    4 => 'ContactForm (Drupal\contact\Entity\ContactForm)'
    5 => 'ContentModerationState (Drupal\content_moderation\Entity\ContentModerationState)'
    6 => 'FieldStorageConfig (Drupal\field\Entity\FieldStorageConfig)'
    7 => 'FieldConfig (Drupal\field\Entity\FieldConfig)'
    8 => 'File (Drupal\file\Entity\File)'
    9 => 'ContentLanguageSettings (Drupal\language\Entity\ContentLanguageSettings)'
    10 => 'RdfMapping (Drupal\rdf\Entity\RdfMapping)'
    11 => 'ResponsiveImageStyle (Drupal\responsive_image\Entity\ResponsiveImageStyle)'
    12 => 'RestResourceConfig (Drupal\rest\Entity\RestResourceConfig)'
    13 => 'Menu (Drupal\system\Entity\Menu)'
    14 => 'Tour (Drupal\tour\Entity\Tour)'
    15 => 'View (Drupal\views\Entity\View)'
    16 => 'Workflow (Drupal\workflows\Entity\Workflow)'
    17 => 'BaseFieldOverride (Drupal\Core\Field\Entity\BaseFieldOverride)'
    18 => 'EntityViewMode (Drupal\Core\Entity\Entity\EntityViewMode)'
    19 => 'FieldLayoutEntityViewDisplay (Drupal\field_layout\Entity\FieldLayoutEntityViewDisplay)'
    20 => 'EntityFormMode (Drupal\Core\Entity\Entity\EntityFormMode)'
    21 => 'FieldLayoutEntityFormDisplay (Drupal\field_layout\Entity\FieldLayoutEntityFormDisplay)'
    22 => 'DateFormat (Drupal\Core\Datetime\Entity\DateFormat)'
) is identical to Array &0 ().

#13:

Drupal\Tests\rest\Functional\EntityResource\EntityResourceRestTestCoverageTest::testEntityTypeRestTestCoverage
☼
      ________________________
     /           Hi!          \
    | What about a few of cool |
    |        REST tests?       |
    |                          |
    |     Progress: 34/42.     |
    | ________________________/
    |/
//  o
l'>
ll
llama
|| ||
'' ''

Failed asserting that Array &0 (
    0 => 'Message (Drupal\contact\Entity\Message)'
    1 => 'ContentModerationState (Drupal\content_moderation\Entity\ContentModerationState)'
    2 => 'File (Drupal\file\Entity\File)'
    3 => 'Workflow (Drupal\workflows\Entity\Workflow)'
    4 => 'EntityViewMode (Drupal\Core\Entity\Entity\EntityViewMode)'
    5 => 'FieldLayoutEntityViewDisplay (Drupal\field_layout\Entity\FieldLayoutEntityViewDisplay)'
    6 => 'EntityFormMode (Drupal\Core\Entity\Entity\EntityFormMode)'
    7 => 'FieldLayoutEntityFormDisplay (Drupal\field_layout\Entity\FieldLayoutEntityFormDisplay)'
) is identical to Array &0 ().

The last submitted patch, 14: 2868035-14.patch, failed testing. View results

Status: Needs review » Needs work

The last submitted patch, 16: 2868035-16.patch, failed testing. View results

kristiaanvandeneynde’s picture

All hail the ASCII llama. We need more test messages like that! Also I like the idea of test coverage covering test coverage.

Wim Leers’s picture

Status: Needs work » Needs review
FileSize
1.2 KB
5.17 KB

#17 showed that we are at 34/42. #18's correction makes this 34/41 (ContentModerationState is not exposed via REST). #19's correction makes this 35/41 (the Workflow entity type's test coverage lives in the workflows module, not in the rest module).

So we're down to 6:

Failed asserting that Array &0 (
    0 => 'Message (Drupal\contact\Entity\Message)'
    1 => 'File (Drupal\file\Entity\File)'
    2 => 'EntityViewMode (Drupal\Core\Entity\Entity\EntityViewMode)'
    3 => 'FieldLayoutEntityViewDisplay (Drupal\field_layout\Entity\FieldLayoutEntityViewDisplay)'
    4 => 'EntityFormMode (Drupal\Core\Entity\Entity\EntityFormMode)'
    5 => 'FieldLayoutEntityFormDisplay (Drupal\field_layout\Entity\FieldLayoutEntityFormDisplay)'
) is identical to Array &0 ().

But that lists FieldLayoutEntityViewDisplay rather than EntityViewDisplay and FieldLayoutEntityFormDisplay rather than EntityFormDisplay. This is because the experimental field_layout module does this:

function field_layout_entity_type_alter(array &$entity_types) {
  /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
  $entity_types['entity_view_display']->setClass(FieldLayoutEntityViewDisplay::class);
  $entity_types['entity_form_display']->setClass(FieldLayoutEntityFormDisplay::class);

Therefore the 6 remaining issues in #2824572: Write EntityResourceTestBase subclasses for every other entity type. do in fact match! (This patch adds the entity type ID to make the output a bit clearer.)

Wim Leers’s picture

All hail the ASCII llama.

:P

We need more test messages like that!

I'm not sure core committers will be willing to commit it like this… although I agree that'd be very cool.

Also I like the idea of test coverage covering test coverage.

Not my idea! The Help module pioneered this, to ensure that every module has a hook_help() implementation :)

kristiaanvandeneynde’s picture

I'm not sure core committers will be willing to commit it like this… although I agree that'd be very cool.

We need more funny stuff like this to be honest :(

Not my idea! The Help module pioneered this, to ensure that every module has a hook_help() implementation :)

Cool, you learn something every day.

Status: Needs review » Needs work

The last submitted patch, 21: 2868035-21.patch, failed testing. View results

Wim Leers’s picture

Great, now the failed test output is crystal clear:

Drupal\Tests\rest\Functional\EntityResource\EntityResourceRestTestCoverageTest::testEntityTypeRestTestCoverage
☼
      ________________________
     /           Hi!          \
    | What about a few of cool |
    |        REST tests?       |
    |                          |
    |     Progress: 35/41.     |
    | ________________________/
    |/
//  o
l'>
ll
llama
|| ||
'' ''

Failed asserting that Array &0 (
    0 => 'contact_message: Message (Drupal\contact\Entity\Message)'
    1 => 'file: File (Drupal\file\Entity\File)'
    2 => 'entity_view_mode: EntityViewMode (Drupal\Core\Entity\Entity\EntityViewMode)'
    3 => 'entity_view_display: FieldLayoutEntityViewDisplay (Drupal\field_layout\Entity\FieldLayoutEntityViewDisplay)'
    4 => 'entity_form_mode: EntityFormMode (Drupal\Core\Entity\Entity\EntityFormMode)'
    5 => 'entity_form_display: FieldLayoutEntityFormDisplay (Drupal\field_layout\Entity\FieldLayoutEntityFormDisplay)'
) is identical to Array &0 ().
Wim Leers’s picture

Title: [PP-1] Test that all core content entity types have functional REST test coverage » [PP-7] Test that all core content entity types have functional REST test coverage

Let's show the actual number of blockers.

Wim Leers’s picture

Wim Leers’s picture

Status: Needs work » Postponed
dawehner’s picture

+++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
@@ -0,0 +1,160 @@
+    $all_modules = array_filter($all_modules, function ($module) {
+      // Filter contrib, hidden, already enabled modules and modules in the
+      // Testing package.
+      if ($module->origin !== 'core' || !empty($module->info['hidden']) || $module->status == TRUE || $module->info['package'] == 'Testing') {
+        return FALSE;
+      }
+      return TRUE;
+    });

Let's give $all_modules a differnet name as its no longer all modules :)

vaplas’s picture

Super correction here! Thank you, @Wim Leers!

And many thanks to @kristiaanvandeneynde for supporting this "llama message", it is very inspiring! But of course, this message is not a fundamental moment here) Just a little fun for the rest folks. After a rich history with this test coverage, why not?)

In any case, we will need to update the message, after all the entities are completed. Perhaps more emphasis on help info for new entities, than on progress.

#29: sure, thank you @dawehner :) I will update this in the future experiments.

Wim Leers’s picture

Title: [PP-7] Test that all core content entity types have functional REST test coverage » [PP-6] Test that all core content entity types have functional REST test coverage
Wim Leers’s picture

Once #2800873: Add XML GET REST test coverage, work around XML encoder quirks lands, we'll need to update this to verify there's XML test coverage too!

Wim Leers’s picture

Title: [PP-6] Test that all core content entity types have functional REST test coverage » [PP-5] Test that all core content entity types have functional REST test coverage
Wim Leers’s picture

Title: [PP-5] Test that all core content entity types have functional REST test coverage » [PP-4] Test that all core content entity types have functional REST test coverage
Wim Leers’s picture

Title: [PP-4] Test that all core content entity types have functional REST test coverage » [PP-2] Test that all core content entity types have functional REST test coverage
Wim Leers’s picture

Status: Postponed » Needs review
FileSize
2.9 KB
5.31 KB

Let's get this patch tested again. We should be down to one failure now.

Also addressing @dawehner's feedback in #29 and my own nits:

  1. +++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
    @@ -0,0 +1,160 @@
    +      // Filter contrib, hidden, already enabled modules and modules in the
    +      // Testing package.
    +      if ($module->origin !== 'core' || !empty($module->info['hidden']) || $module->status == TRUE || $module->info['package'] == 'Testing') {
    +        return FALSE;
    +      }
    

    We should also exclude experimental modules — it's okay for experimental modules to not yet have full REST test coverage.

  2. +++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
    @@ -0,0 +1,160 @@
    +    \Drupal::service('module_installer')->install(array_keys($all_modules));
    ...
    +    $this->definitions = \Drupal::entityTypeManager()->getDefinitions();
    ...
    +    $resource_plugin_ids = array_keys(\Drupal::service('plugin.manager.rest')->getDefinitions());
    

    These should all use $this->container->get(…)

  3. +++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
    @@ -0,0 +1,160 @@
    +  protected function getLlamaMessage($good, $all) {
    +
    +    $a = $all;
    

    Extraneous newline.

  4. +++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
    @@ -0,0 +1,160 @@
    +    | What about a few of cool |
    +    |        REST tests?       |
    

    We should fix the language here.

Wim Leers’s picture

Title: [PP-2] Test that all core content entity types have functional REST test coverage » Test that all core content+config entity types have functional REST test coverage
FileSize
1.07 KB
5.61 KB

Assuming this comes back with the expected failure for the sole remaining REST test coverage issue (#2843139: EntityResource: Provide comprehensive test coverage for File entity, and tighten access control handler), I think we should add a work-around for that for now so that this can already be committed. Then at least we know we won't be adding more entity types without REST test coverage: this patch will ensure we'll never regress!

Which means this issue would no longer be blocked! (Updating issue title accordingly.)

Thoughts?

tedbow’s picture

@Wim Leers I think the work around is good idea, the file issue could take a while and in the meantime we won't have test to force REST coverage for any new entities.

+++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
@@ -0,0 +1,166 @@
+     /           Hi!          \\
+    |  It's llame to not have  |
+    |   complete REST tests!   |

All my test messages are now llame in comparison.

The last submitted patch, 36: 2868035-36.patch, failed testing. View results

Wim Leers’s picture

#38: Great! Does that mean this becomes RTBC? :)

vaplas’s picture

What a beautiful play of words! 💎💎💎


Maybe also add something like this
elseif ($problems === []) {
  $this->fail('Please, remove me, and @todo-code over me.');
}

For prevent fix #2843139: EntityResource: Provide comprehensive test coverage for File entity, and tighten access control handler without performing this @todo?

Edit: elseif of course

dawehner’s picture

+++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
@@ -0,0 +1,166 @@
+    $a = $all;
+    $g = $good;
+
+    if ($g < 10) {
+      $g = "0$g";
+    }

This is weird, why do we do that. This makes it harder to read IMHO

vaplas’s picture

FileSize
5.62 KB
1.32 KB

This function does not affect the test. It's just a small fan, where more convenient to work with variables, the length of which coincides with their values.

Example:

+++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
@@ -0,0 +1,166 @@
+      ________________________
+     /           Hi!          \\
+    |  It's llame to not have  |
+    |   complete REST tests!   |
+    |                          |
+    |     Progress: $g/$a.     |
+    | ________________________/
+    |/

vs

+++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
@@ -0,0 +1,166 @@
+      ________________________
+     /           Hi!          \\
+    |  It's llame to not have  |
+    |   complete REST tests!   |
+    |                          |
+    |     Progress: $good/$all.     |
+    | ________________________/
+    |/

Although this code

+    if ($g < 10) {
+      $g = "0$g";
+    }

is no longer relevant, because both numbers are two-valued. Good catch!

#41 + #42 done.

dawehner’s picture

  1. +++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
    @@ -0,0 +1,165 @@
    +      if ($module->origin !== 'core' || !empty($module->info['hidden']) || $module->status == TRUE || $module->info['package'] == 'Testing' || $module->info['package'] == 'Core (Experimental)') {
    +        return FALSE;
    +      }
    +      return TRUE;
    

    🔧 You could get rid of the if by negating the entire statement and return it.

  2. +++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
    @@ -0,0 +1,165 @@
    +    $a = $all;
    +    $g = $good;
    

    Now that we just assign a variable I see even less of a reason to assign them to some new variable locally.

vaplas’s picture

#44: thanks again! Done.

Status: Needs review » Needs work

The last submitted patch, 45: 2868035-45.patch, failed testing. View results

Wim Leers’s picture

Status: Needs work » Needs review
FileSize
896 bytes
5.66 KB

$module->status === 0, which is why the === FALSE check didn't work, but == FALSE does work.

vaplas’s picture

What insidious status value. Thank you, @Wim Leers, that clarified it! Then how about this.

Wim Leers’s picture

👍

Wim Leers’s picture

Status: Needs review » Reviewed & tested by the community

90% of the work here was done by @vaplas. This has been ready for about a week now, with no one else stepping up to RTBC it. So I will.

The last submitted patch, 48: 2868035-48.patch, failed testing. View results

vaplas’s picture

borisson_’s picture

This has been RTBC for a week, but I figured another review would help the committers be more certain that this works as expected.

+++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
@@ -0,0 +1,163 @@
+    elseif ($problems === []) {
+      $this->fail('Drupal\file\Entity\File now supports REST test coverage. We need remove @todo with work-around for pass it.');
+    }

This is awesome, it will automatically alert us when the rest coverage for files is fixed!

RTBC++

larowlan’s picture

Status: Reviewed & tested by the community » Needs review
+++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
@@ -0,0 +1,163 @@
+      $this->fail('Drupal\file\Entity\File now supports REST test coverage. We need remove @todo with work-around for pass it.');

the english is off here

nice work though

Wim Leers’s picture

Status: Needs review » Reviewed & tested by the community
FileSize
1.05 KB
5.69 KB

Fixed.

  • xjm committed 435bae8 on 8.5.x
    Issue #2868035 by Wim Leers, vaplas, dawehner, larowlan: Test that all...
xjm’s picture

Status: Reviewed & tested by the community » Fixed

This is epic!

I found a few more docs nitpicks, but I was so excited about this patch that I fixed them on commit:

diff --git a/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
index 613d327dbb..6b7bc6fd92 100644
--- a/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
+++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceRestTestCoverageTest.php
@@ -11,14 +11,14 @@
  * - every format in core (json + hal_json)
  * - every authentication provider in core (anon, cookie, basic_auth)
  *
- * @todo also require xml after https://www.drupal.org/node/2800873 lands
+ * @todo Also require XML after https://www.drupal.org/node/2800873 lands.
  *
  * @group rest
  */
 class EntityResourceRestTestCoverageTest extends BrowserTestBase {
 
   /**
-   * Entities definitions array.
+   * Entity definitions array.
    *
    * @var array
    */
@@ -32,8 +32,8 @@ protected function setUp() {
 
     $all_modules = system_rebuild_module_data();
     $stable_core_modules = array_filter($all_modules, function ($module) {
-      // Filter contrib, hidden, already enabled modules and modules in the
-      // Testing and experimental packages.
+      // Filter out contrib, hidden, testing, and experimental modules. We also
+      // don't need to enable modules that are already enabled.
       return
         $module->origin === 'core' &&
         empty($module->info['hidden']) &&

...That almost went badly because I struggle to type "XML" correctly since it's so close to my username.

Committed and pushed to 8.5.x!! 🎆🎆🎆

vaplas’s picture

FileSize
1.01 MB

#53, #54: thanks for additional review and positive feedback!
#55: thanks as always!
#57: ❤️

xjmepic

xjm’s picture

That is the most amazing thing I have seen on the entire internet.

Wim Leers’s picture

#57: 🎉 😁

#58: 😵 🤣

WHERE DO YOU EVEN FIND THOSE THINGS VAPLAS???!?!?!?!?!?!??!!?!??!!!!!!

Wim Leers’s picture

@vaplas already updated #2843139, to remove the @todo that this introduced: #2843139-96: EntityResource: Provide comprehensive test coverage for File entity, and tighten access control handler.

And I just updated #2800873 to ensure that the "test coverage test" that this issue introduced also verifies that there is XML REST test coverage for every entity type: #2800873-163: Add XML GET REST test coverage, work around XML encoder quirks.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.