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++) {