@@ -478,6 +478,83 @@ public function testPullMessagesWithDefaultLocale()
478
478
, file_get_contents ($ filenameFr ));
479
479
}
480
480
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
+
481
558
/**
482
559
* @dataProvider provideCompletionSuggestions
483
560
*/
0 commit comments