Author: rbaxter85
Date: Sat Oct 25 13:59:28 2014
New Revision: 1634227

URL: http://svn.apache.org/r1634227
Log:
The gadget loaded by Shindig doesn't contain proper title element
SHINDIG-1978
Committed for Jiaqing Guo

Modified:
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
    
shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java?rev=1634227&r1=1634226&r2=1634227&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
 Sat Oct 25 13:59:28 2014
@@ -61,6 +61,7 @@ import org.apache.shindig.gadgets.rewrit
 import org.apache.shindig.gadgets.rewrite.RewritingException;
 import org.apache.shindig.gadgets.spec.Feature;
 import org.apache.shindig.gadgets.spec.MessageBundle;
+import org.apache.shindig.gadgets.spec.ModulePrefs;
 import org.apache.shindig.gadgets.spec.UserPref;
 import org.apache.shindig.gadgets.spec.View;
 import org.apache.shindig.gadgets.templates.MessageELResolver;
@@ -237,9 +238,19 @@ public class RenderingGadgetRewriter imp
       processChildNodes(document);
       Element head = (Element) 
DomUtil.getFirstNamedChildNode(document.getDocumentElement(), "head");
 
+      Element title = document.createElement("title");
+      ModulePrefs mps = gadget.getSpec().getModulePrefs();
+      String titleValue = "default title";
+      if (mps != null && mps.getTitle() != null && !mps.getTitle().isEmpty()){
+        titleValue = mps.getTitle();
+      }
+      title.appendChild(title.getOwnerDocument().createTextNode(titleValue));
+
       // Insert new content before any of the existing children of the head 
element
       Node firstHeadChild = head.getFirstChild();
 
+      head.insertBefore(title, firstHeadChild);
+
       Element injectedStyle = document.createElement("style");
       injectedStyle.setAttribute("type", "text/css");
       head.insertBefore(injectedStyle, firstHeadChild);

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java?rev=1634227&r1=1634226&r2=1634227&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
 Sat Oct 25 13:59:28 2014
@@ -177,6 +177,11 @@ public class RenderingGadgetRewriterTest
     return makeGadgetWithSpec(defaultXml);
   }
 
+  private Gadget makeDefaultOpenSocial2GadgetWithTitle(boolean useQuirks, 
String title) throws GadgetException {
+    String defaultXml = "<Module specificationVersion='2' ><ModulePrefs " + 
(useQuirks ? "doctype='quirksmode'" : "") +" title='" + title + "'/><Content 
type='html'/></Module>";
+    return makeGadgetWithSpec(defaultXml);
+  }
+
   private String rewrite(Gadget gadget, String content) throws Exception {
     MutableContent mc = new MutableContent(parser, content);
     rewriter.rewrite(gadget, mc);
@@ -226,6 +231,34 @@ public class RenderingGadgetRewriterTest
   }
 
   @Test
+  public void createDefaultTitleElement() throws Exception{
+    Gadget gadget = makeDefaultOpenSocial2Gadget(false);
+    String body = "hello, world.";
+    String doc = new StringBuilder()
+        .append("<html><head>")
+        .append("</head><body>")
+        .append(body)
+        .append("</body></html>")
+        .toString();
+    String rewritten = rewrite(gadget, doc);
+    assertTrue(rewritten.contains("<title>default title</title>"));
+  }
+
+  @Test
+  public void createSpecifiedTitleElement() throws Exception{
+    Gadget gadget = makeDefaultOpenSocial2GadgetWithTitle(false, "Here is 
title");
+    String body = "hello, world.";
+    String doc = new StringBuilder()
+        .append("<html><head>")
+        .append("</head><body>")
+        .append(body)
+        .append("</body></html>")
+        .toString();
+    String rewritten = rewrite(gadget, doc);
+    assertTrue(rewritten.contains("<title>Here is title</title>"));
+  }
+
+  @Test
   public void quirksmodeInOS2() throws Exception{
     Gadget gadget = makeDefaultOpenSocial2Gadget(true);
     String body = "hello, world.";

Modified: 
shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java?rev=1634227&r1=1634226&r2=1634227&view=diff
==============================================================================
--- 
shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java
 (original)
+++ 
shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java
 Sat Oct 25 13:59:28 2014
@@ -215,7 +215,10 @@ public class EndToEndTest {
   @Test
   public void testPipelining() throws Exception {
     HtmlPage page = executePageTest("pipeliningTest", null);
-    JSONArray array = new JSONArray(page.asText());
+    String text = page.asText();
+    String title = page.getTitleText();
+    assertEquals("EndToEndTest", title);
+    JSONArray array = new JSONArray(text.substring(title.length(), 
text.length()));
     assertEquals(3, array.length());
     Map<String, JSONObject> jsonObjects = Maps.newHashMap();
     for (int i = 0; i < array.length(); i++) {


Reply via email to