/**
     * Tests MessageBundleParser->parse() on error xml string.
     */
    public function testParseOnError()
    {
        $xml = '<?xml version="1.0" encoding="UTF-8" ?>
<doc>
  <msg name="name1">Message 1</msg>
  <msg name="name2">Message 2</msg>
  <msg name="name3">Message 3</msg>
  <msg name="name4">Message 4</msg>';
        $this->setExpectedException('Exception');
        $this->MessageBundle = $this->MessageBundleParser->parse($xml);
    }
    /**
     * Tests MessageBundleParser->parse()
     */
    public function testParse()
    {
        $xml = '<?xml version="1.0" encoding="UTF-8" ?>
<doc>
	<msg name="name1">Message 1</msg>
	<msg name="name2">Message 2</msg>
	<msg name="name3">Message 3</msg>
	<msg name="name4">Message 4</msg>
</doc>';
        $this->MessageBundle = $this->MessageBundleParser->parse($xml);
        $this->assertTrue($this->MessageBundle instanceof MessageBundle);
    }
Пример #3
0
    /**
     * Tests MessageBundleParser->parse()
     */
    public function testParse()
    {
        $xml = '<?xml version="1.0" encoding="UTF-8" ?>
<doc>
	<msg name="name1">Message 1</msg>
	<msg name="name2">Message 2</msg>
	<msg name="name3">Message 3</msg>
	<msg name="name4">Message 4</msg>
</doc>';
        $this->MessageBundle = $this->MessageBundleParser->parse($xml);
        $this->assertEquals('Message 1', $this->MessageBundle['name1']);
        $this->assertEquals('Message 2', $this->MessageBundle['name2']);
        $this->assertEquals('Message 3', $this->MessageBundle['name3']);
        $this->assertEquals('Message 4', $this->MessageBundle['name4']);
    }
Пример #4
0
 private function getBundle($localeSpec, $context)
 {
     if ($localeSpec != null) {
         $uri = $localeSpec->getURI();
         if ($uri != null) {
             $fetcher = $context->getHttpFetcher();
             $response = $fetcher->fetch(new RemoteContentRequest($uri), $context);
             $parser = new MessageBundleParser();
             $bundle = $parser->parse($response->getResponseContent());
             return $bundle;
         }
     }
     return null;
 }
 private function getBundle(LocaleSpec $localeSpec = null, $context)
 {
     if ($localeSpec != null) {
         $uri = $localeSpec->getURI();
         if ($uri != null) {
             $fetcher = $context->getHttpFetcher();
             $response = $fetcher->fetch(new RemoteContentRequest($uri), $context);
             $parser = new MessageBundleParser();
             $bundle = $parser->parse($response->getResponseContent());
             return $bundle;
         } else {
             $messages = array();
             foreach ($localeSpec->getLocaleMessageBundles() as $messageBundle) {
                 $messages[$messageBundle->getName()] = $messageBundle->getDesc();
             }
             return new MessageBundle($messages);
         }
     }
     return null;
 }
Пример #6
0
 private function getMessagesArrayForSpecs($context, array $specs)
 {
     $requestArray = array();
     $contextArray = array();
     $messagesArray = array();
     foreach ($specs as $spec) {
         if ($spec == null) {
             continue;
         }
         $uri = $spec->getURI();
         if ($uri == null) {
             if ($spec->getLocaleMessageBundles() != null) {
                 $messagesArray[] = $spec->getLocaleMessageBundles();
             } else {
                 $messagesArray[] = array();
             }
             continue;
         }
         $parsedUri = parse_url($uri);
         if (empty($parsedUri['host'])) {
             // relative path's in the locale spec uri
             $gadgetUrl = $context->getUrl();
             $gadgetUrl = substr($gadgetUrl, 0, strrpos($gadgetUrl, '/') + 1);
             $uri = $gadgetUrl . $uri;
         }
         $requestArray[] = new RemoteContentRequest($uri);
         $contextArray[] = $context;
         $messagesArray[] = null;
     }
     if (count($messagesArray) == 0) {
         return array();
     }
     $fetcher = $context->getHttpFetcher();
     $responseArray = $fetcher->multiFetch($requestArray, $contextArray);
     $parser = new MessageBundleParser();
     for ($i = 0, $j = 0; $i < count($messagesArray); ++$i) {
         if ($messagesArray[$i] == null) {
             $messagesArray[$i] = $parser->parse($responseArray[$j]->getResponseContent());
             ++$j;
         }
     }
     return $messagesArray;
 }