Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
  *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 
 package org.apache.shindig.gadgets.spec;
 
 import static org.junit.Assert.assertEquals;
 
 
 import  com.google.common.collect.ImmutableMap;
 import  com.google.common.collect.Maps;
 
 import  org.json.JSONException;
 import  org.json.JSONObject;
 import org.junit.Test;
 
 import java.util.Map;
 
 public class MessageBundleTest {
   private static final Uri BUNDLE_URL = Uri.parse("http://example.org/m.xml");
   private static final String LOCALE
       = "<Locale lang='en' country='US' messages='" +  + "'/>";
   private static final String PARENT_LOCALE
       = "<Locale lang='en' country='ALL' language_direction='rtl'>" +
         " <msg name='one'>VALUE</msg>" +
         " <msg name='foo'>adfdfdf</msg>" +
         "</Locale>";
   private static final Map<StringStringMESSAGES = Maps.newHashMap();
   private static final String XML;
   static {
     .put("hello""world");
     .put("foo""bar");
     StringBuilder buf = new StringBuilder();
     buf.append("<messagebundle>");
     for (Map.Entry<StringStringentry : .entrySet()) {
       buf.append("<msg name='").append(entry.getKey()).append("'>")
          .append(entry.getValue())
          .append("</msg>");
     }
     buf.append("</messagebundle>");
      = buf.toString();
   }
 
   private LocaleSpec locale;
 
   @Before
   public void setUp() throws Exception {
      = new LocaleSpec(XmlUtil.parse(), Uri.parse("http://example.org/gadget"));
   }
 
   @Test
   public void normalMessageBundleParsesOk() throws Exception {
     MessageBundle bundle = new MessageBundle();
     assertEquals(bundle.getMessages());
   }
 
   @Test
   public void duplicateKeyIgnored() throws Exception {
     String duplicateKeyXml =
       "<messagebundle>" +
       "  <msg name='key'>value</msg>" +
       "  <msg name='key'>value</msg>" +
       "</messagebundle>";
     MessageBundle bundle = new MessageBundle(duplicateKeyXml);
     assertEquals(ImmutableMap.of("key""value"), bundle.getMessages());
   }
   
   @Test
   public void containsCdataSection() throws Exception {
     String cdataXml =
        "<messagebundle>" +
        "  <msg name='key'><![CDATA[<span id='foo'>data</span>]]></msg>" +
        "</messagebundle>";
     MessageBundle bundle = new MessageBundle(cdataXml);
     assertEquals(ImmutableMap.of("key""<span id='foo'>data</span>"), bundle.getMessages());
   }
   
   @Test(expected = SpecParserException.class)
   public void missingNameThrows() throws SpecParserException {
     String xml = "<messagebundle><msg>foo</msg></messagebundle>";
    new MessageBundle(xml);
  }
  @Test(expected = SpecParserException.class)
  public void malformedXmlThrows() throws SpecParserException {
    String xml = "</messagebundle>";
    new MessageBundle(xml);
  }
  @Test
  public void extractFromElement() throws Exception {
    Element element = XmlUtil.parse();
    MessageBundle bundle = new MessageBundle(element);
    assertEquals(bundle.getMessages());
  }
  @Test
  public void extractFromElementWithLanguageDir() throws Exception {
    Element element = XmlUtil.parse();
    MessageBundle bundle = new MessageBundle(element);
    assertEquals("rtl"bundle.getLanguageDirection());
  }
  @Test(expected = SpecParserException.class)
  public void extractFromElementsWithNoName() throws Exception {
    String xml = "<messagebundle><msg>foo</msg></messagebundle>";
    Element element = XmlUtil.parse(xml);
    new MessageBundle(element);
  }
  @Test
  public void extractNestedTagsVerbatim() throws Exception {
    String xml = "<messagebundle><msg name='key'>This is <x>nested</x> content</msg>" +
                 "</messagebundle>";
    Element element = XmlUtil.parse(xml);
    MessageBundle bundle = new MessageBundle(element);
    assertEquals("This is <x>nested</x> content"bundle.getMessages().get("key"));
  }
  @Test
  public void merge() throws Exception {
    MessageBundle parent = new MessageBundle(XmlUtil.parse());
    MessageBundle child = new MessageBundle(XmlUtil.parse());
    MessageBundle bundle = new MessageBundle(parentchild);
    assertEquals("ltr"bundle.getLanguageDirection());
    assertEquals("VALUE"bundle.getMessages().get("one"));
    assertEquals("bar"bundle.getMessages().get("foo"));
  }
  @Test
  public void toStringIsSane() throws Exception {
    MessageBundle b0 = new MessageBundle();
    MessageBundle b1 = new MessageBundle(b0.toString());
  }
  private static void assertJsonEquals(JSONObject left, JSONObject rightthrows JSONException {
    assertEquals(left.length(), right.length());
    for (String key : JSONObject.getNames(left)) {
      assertEquals(left.get(key), right.get(key));
    }
  }
  @Test
  public void toJSONStringMatchesValues() throws Exception {
    MessageBundle simple = new MessageBundle(XmlUtil.parse());
    JSONObject fromString = new JSONObject(simple.toJSONString());
    JSONObject fromMap = new JSONObject(simple.getMessages());
    assertJsonEquals(fromStringfromMap);
  }
  @Test
  public void toJSONStringMatchesValuesLocaleCtor() throws Exception {
    MessageBundle bundle = new MessageBundle();
    JSONObject fromString = new JSONObject(bundle.toJSONString());
    JSONObject fromMap = new JSONObject(bundle.getMessages());
    assertJsonEquals(fromStringfromMap);
  }
  @Test
  public void toJSONStringMatchesValuesWithChild() throws Exception {
    MessageBundle parent = new MessageBundle(XmlUtil.parse());
    MessageBundle child = new MessageBundle(XmlUtil.parse());
    MessageBundle bundle = new MessageBundle(parentchild);
    JSONObject fromString = new JSONObject(bundle.toJSONString());
    JSONObject fromMap = new JSONObject(bundle.getMessages());
    assertJsonEquals(fromStringfromMap);
  }
New to GrepCode? Check out our FAQ X