@@ -478,6 +478,83 @@ public function testPullMessagesWithDefaultLocale()
478478 , file_get_contents ($ filenameFr ));
479479 }
480480
481+ public function testPullMessagesMultipleDomains ()
482+ {
483+ $ arrayLoader = new ArrayLoader ();
484+ $ filenameMessages = $ this ->createFile (['note ' => 'NOTE ' ]);
485+ $ filenameDomain = $ this ->createFile (['note ' => 'NOTE ' ], 'en ' , 'domain.%locale%.xlf ' );
486+ $ locales = ['en ' ];
487+ $ domains = ['messages ' , 'domain ' ];
488+
489+ $ providerReadTranslatorBag = new TranslatorBag ();
490+ $ providerReadTranslatorBag ->addCatalogue ($ arrayLoader ->load ([
491+ 'new.foo ' => 'newFoo ' ,
492+ ], 'en ' ));
493+
494+ $ providerReadTranslatorBag ->addCatalogue ($ arrayLoader ->load ([
495+ 'new.foo ' => 'newFoo ' ,
496+ ], 'en ' ,
497+ 'domain '
498+ ));
499+
500+ $ provider = $ this ->createMock (ProviderInterface::class);
501+ $ provider ->expects ($ this ->once ())
502+ ->method ('read ' )
503+ ->with ($ domains , $ locales )
504+ ->willReturn ($ providerReadTranslatorBag );
505+
506+ $ provider ->expects ($ this ->once ())
507+ ->method ('__toString ' )
508+ ->willReturn ('null://default ' );
509+
510+ $ tester = $ this ->createCommandTester ($ provider , $ locales , $ domains , 'en ' );
511+ $ tester ->execute (['--locales ' => ['en ' ], '--domains ' => ['messages ' , 'domain ' ]]);
512+
513+ $ this ->assertStringContainsString ('[OK] New translations from "null" has been written locally (for "en" locale(s), and "messages, domain" domain(s)). ' , trim ($ tester ->getDisplay ()));
514+ $ this ->assertXmlStringEqualsXmlString (<<<XLIFF
515+ <?xml version="1.0"?>
516+ <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
517+ <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
518+ <header>
519+ <tool tool-id="symfony" tool-name="Symfony"/>
520+ </header>
521+ <body>
522+ <trans-unit id="994ixRL" resname="new.foo">
523+ <source>new.foo</source>
524+ <target>newFoo</target>
525+ </trans-unit>
526+ <trans-unit id="7bRlYkK" resname="note">
527+ <source>note</source>
528+ <target>NOTE</target>
529+ </trans-unit>
530+ </body>
531+ </file>
532+ </xliff>
533+ XLIFF
534+ , file_get_contents ($ filenameMessages ));
535+ $ this ->assertXmlStringEqualsXmlString (<<<XLIFF
536+ <?xml version="1.0"?>
537+ <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
538+ <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
539+ <header>
540+ <tool tool-id="symfony" tool-name="Symfony"/>
541+ </header>
542+ <body>
543+ <trans-unit id="994ixRL" resname="new.foo">
544+ <source>new.foo</source>
545+ <target>newFoo</target>
546+ </trans-unit>
547+ <trans-unit id="7bRlYkK" resname="note">
548+ <source>note</source>
549+ <target>NOTE</target>
550+ </trans-unit>
551+ </body>
552+ </file>
553+ </xliff>
554+ XLIFF
555+ , file_get_contents ($ filenameDomain ));
556+ }
557+
481558 /**
482559 * @dataProvider provideCompletionSuggestions
483560 */
0 commit comments