/* * Copyright (C) 2009 Google Inc. * * Licensed 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 com.google.sites.liberation.renderers; import static org.junit.Assert.*; import com.google.gdata.data.sites.AnnouncementEntry; import com.google.gdata.data.sites.BaseContentEntry; import com.google.gdata.data.sites.Revision; import com.google.gdata.data.sites.WebPageEntry; import com.google.gdata.data.DateTime; import com.google.gdata.data.Person; import com.google.gdata.data.PlainTextConstruct; import com.google.gdata.data.XhtmlTextConstruct; import com.google.gdata.util.XmlBlob; import com.google.sites.liberation.util.XmlElement; import org.junit.Test; public class RendererUtilsTest { @Test public void testGetAuthorElement() { Person author = new Person(); author.setName("Ben Simon"); author.setEmail("me@company.com"); BaseContentEntry<?> entry = new WebPageEntry(); entry.getAuthors().add(author); XmlElement element = RendererUtils.getAuthorElement(entry); assertEquals("<span class=\"author\"><span class=\"vcard\"><a class=\"fn\" href=\"" + "mailto:me@company.com\">Ben Simon</a></span></span>", element.toString()); } @Test public void testGetContentElement() { String xhtml = "<div><a href=\"http://whoa!\">whoa</a></div>"; XmlBlob blob = new XmlBlob(); blob.setBlob(xhtml); BaseContentEntry<?> entry = new WebPageEntry(); entry.setContent(new XhtmlTextConstruct(blob)); XmlElement element = RendererUtils.getXhtmlContentElement(entry); assertEquals("<div class=\"entry-content\">" + xhtml + "</div>", element.toString()); entry = new WebPageEntry(); element = RendererUtils.getXhtmlContentElement(entry); assertEquals("<div class=\"entry-content\"></div>", element.toString()); } @Test public void testGetEntryElement() { BaseContentEntry<?> entry = new AnnouncementEntry(); entry.setId("announce"); XmlElement element = RendererUtils.getEntryElement(entry, "div"); assertEquals("<div class=\"hentry announcement\" id=\"announce\" />", element.toString()); } @Test public void testGetHyperLink() { XmlElement link = RendererUtils.getHyperLink("http://test.html", "test"); assertEquals("<a href=\"http://test.html\">test</a>", link.toString()); link = RendererUtils.getHyperLink("", ""); assertEquals("<a href=\"\"></a>", link.toString()); } @Test public void testGetRevisionElement() { BaseContentEntry<?> entry = new WebPageEntry(); entry.setRevision(new Revision(25)); XmlElement element = RendererUtils.getRevisionElement(entry); assertEquals("<span class=\"sites:revision\">25</span>", element.toString()); element = RendererUtils.getRevisionElement(new WebPageEntry()); assertEquals("<span class=\"sites:revision\">1</span>", element.toString()); } @Test public void testGetSummaryElement() { BaseContentEntry<?> entry = new WebPageEntry(); entry.setSummary(new PlainTextConstruct("summary 1")); XmlElement element = RendererUtils.getSummaryElement(entry); assertEquals("<span class=\"entry-summary\">summary 1</span>", element.toString()); entry.setSummary(new PlainTextConstruct("<summary 1>")); element = RendererUtils.getSummaryElement(entry); assertEquals("<span class=\"entry-summary\"><summary 1></span>", element.toString()); } @Test public void testGetTitleElement() { BaseContentEntry<?> entry = new WebPageEntry(); entry.setTitle(new PlainTextConstruct("title 1")); XmlElement element = RendererUtils.getTitleElement(entry); assertEquals("<span class=\"entry-title\">title 1</span>", element.toString()); entry.setTitle(new PlainTextConstruct("<title 1>")); element = RendererUtils.getTitleElement(entry); assertEquals("<span class=\"entry-title\"><title 1></span>", element.toString()); } @Test public void testGetUpdatedElement() { String date = "2009-07-02T21:46:23.133Z"; BaseContentEntry<?> entry = new WebPageEntry(); entry.setUpdated(DateTime.parseDateTime(date)); XmlElement element = RendererUtils.getUpdatedElement(entry); assertEquals("<abbr class=\"updated\" title=\"" + date + "\">Jul 2, 2009</abbr>", element.toString()); date = "2598-11-25T23:41:10.256Z"; entry.setUpdated(DateTime.parseDateTime(date)); element = RendererUtils.getUpdatedElement(entry); assertEquals("<abbr class=\"updated\" title=\"" + date + "\">Nov 25, 2598</abbr>", element.toString()); } }