Package com.google.sitebricks

Examples of com.google.sitebricks.Respond


    //forName expects pageName to be in all-lower case (it's an optimization)
    pageName = pageName.toLowerCase();

    final PageBook pageBook = createMock(PageBook.class);
    final PageBook.Page page = createMock(PageBook.Page.class);
    final Respond respond = RespondersForTesting.newRespond();


    final MvelEvaluator evaluator = new MvelEvaluator();

    final WidgetChain widget = new ProceedingWidgetChain();
    final WidgetChain targetWidgetChain = new ProceedingWidgetChain();

    //noinspection unchecked
    targetWidgetChain.addWidget(new XmlWidget(new TerminalWidgetChain(), "p", new MvelEvaluatorCompiler(Object.class),
        new LinkedHashMap<String, String>() {{
          put("class", "pretty");
          put("id", "a-p-tag");
        }}));
    widget.addWidget(new ShowIfWidget(targetWidgetChain, "true", evaluator));

    Renderable bodyWrapper = new XmlWidget(widget, "body", createMock(EvaluatorCompiler.class), Collections.<String, String>emptyMap());

    expect(pageBook.forName(pageName))
        .andReturn(page);


    //mypage does?
    final MyEmbeddedPage myEmbeddedPage = new MyEmbeddedPage();
    expect(page.instantiate())
        .andReturn(myEmbeddedPage);

    expect(page.doMethod(isA(String.class), anyObject(), isA(String.class),
        isA(HttpServletRequest.class)))
        .andReturn(null);
    expect(page.widget())
        .andReturn(bodyWrapper);

    replay(pageBook, page);


    final EmbedWidget embedWidget = new EmbedWidget(Collections.<String, ArgumentWidget>emptyMap(), expression, evaluator, pageBook, pageName);
    embedWidget.init(new EmbeddedRespondFactory(RespondersForTesting.newRespond()), HtmlTemplateCompilerTest.mockRequestProviderForContext());
    embedWidget
        .render(new MyParentPage(passOn), respond);


    //assert bindings
    assert myEmbeddedPage.isSet() : "variable not passed on to embedded page";
    assert passOn.equals(myEmbeddedPage.getMessage()) : "variable not set on embedded page";

    //the render was ok
    final String resp = respond.toString();
    assert "<p class=\"pretty\" id=\"a-p-tag\"/>".equals(resp) : "widget not embedded correctly : " + resp;

    verify(pageBook, page);
  }
View Full Code Here


    //forName expects pageName to be in all-lower case (it's an optimization)
    targetPageName = targetPageName.toLowerCase();

    final PageBook pageBook = createMock(PageBook.class);
    final PageBook.Page page = createMock(PageBook.Page.class);
    final Respond respond = RespondersForTesting.newRespond();


    final MvelEvaluator evaluator = new MvelEvaluator();

    final WidgetChain widget = new ProceedingWidgetChain();
    final WidgetChain targetWidgetChain = new ProceedingWidgetChain();
    //noinspection unchecked
    targetWidgetChain.addWidget(new XmlWidget(new ProceedingWidgetChain()
        .addWidget(new IncludeWidget(new TerminalWidgetChain(), "'me'", evaluator)),

        "p", new MvelEvaluatorCompiler(Object.class), new LinkedHashMap<String, String>() {{
          put("class", "pretty");
          put("id", "a-p-tag");
        }}));
    widget.addWidget(new ShowIfWidget(targetWidgetChain, "true", evaluator));

    Renderable bodyWrapper = new XmlWidget(widget, "body", createMock(EvaluatorCompiler.class), Collections.<String, String>emptyMap());

    expect(pageBook.forName(targetPageName))
        .andReturn(page);


    //mypage does?
    final MyEmbeddedPage myEmbeddedPage = new MyEmbeddedPage();
    expect(page.instantiate())
        .andReturn(myEmbeddedPage);

    expect(page.doMethod(isA(String.class), anyObject(), isA(String.class),
        isA(HttpServletRequest.class)))
        .andReturn(null);
    expect(page.widget())
        .andReturn(bodyWrapper);

    replay(pageBook, page);

    //create embedding arguments
    final String includeExpr = "me";

    Map<String, ArgumentWidget> inners = new HashMap<String, ArgumentWidget>();
    inners.put(includeExpr, new ArgumentWidget(new ProceedingWidgetChain().addWidget(new TextWidget(HELLO_FROM_INCLUDE, new MvelEvaluatorCompiler(Object.class))),
        includeExpr, evaluator));


    final EmbedWidget embedWidget = new EmbedWidget(inners, expression, evaluator, pageBook, targetPageName);
    embedWidget.init(new EmbeddedRespondFactory(RespondersForTesting.newRespond()), HtmlTemplateCompilerTest.mockRequestProviderForContext());
    embedWidget
        .render(new MyParentPage(passOn), respond);

    //assert bindings
    assert myEmbeddedPage.isSet() : "variable not passed on to embedded page";
    assert passOn.equals(myEmbeddedPage.getMessage()) : "variable not set on embedded page";

    //the render was ok
    final String resp = respond.toString();
    assert String.format("<p class=\"pretty\" id=\"a-p-tag\">%s</p>", HELLO_FROM_INCLUDE).equals(resp)
        : "widget not embedded correctly : " + resp;

    verify(pageBook, page);
  }
View Full Code Here

    //forName expects pageName to be in all-lower case (it's an optimization)
    pageName = pageName.toLowerCase();

    final PageBook pageBook = createMock(PageBook.class);
    final PageBook.Page page = createMock(PageBook.Page.class);
    final Respond respond = RespondersForTesting.newRespond();


    final MvelEvaluator evaluator = new MvelEvaluator();

    final ProceedingWidgetChain widget = new ProceedingWidgetChain();
    final WidgetChain targetWidgetChain = new ProceedingWidgetChain();
    //noinspection unchecked
    targetWidgetChain.addWidget(new XmlWidget(new TerminalWidgetChain(), "p", new MvelEvaluatorCompiler(Object.class), new LinkedHashMap<String, String>() {{
      put("class", "pretty");
      put("id", "a-p-tag");
    }}));
    widget.addWidget(new ShowIfWidget(targetWidgetChain, "false", evaluator));

    expect(pageBook.forName(pageName))
        .andReturn(page);


    //mypage does?
    final MyEmbeddedPage myEmbeddedPage = new MyEmbeddedPage();
    expect(page.instantiate())
        .andReturn(myEmbeddedPage);

    expect(page.doMethod(isA(String.class), anyObject(), isA(String.class),
        isA(HttpServletRequest.class)))
        .andReturn(null);
    expect(page.widget())
        .andReturn(widget);

    replay(pageBook, page);


    final EmbedWidget embedWidget = new EmbedWidget(Collections.<String, ArgumentWidget>emptyMap(), expression, evaluator, pageBook, pageName);
    embedWidget.init(new EmbeddedRespondFactory(RespondersForTesting.newRespond()), HtmlTemplateCompilerTest.mockRequestProviderForContext());
    embedWidget
        .render(new MyParentPage(passOn), respond);

    //assert bindings
    assert myEmbeddedPage.isSet() : "variable not passed on to embedded page";
    assert passOn.equals(myEmbeddedPage.getMessage()) : "variable not set on embedded page";

    //the render was ok
    final String resp = respond.toString();
    assert "".equals(resp) : "widget not embedded correctly : " + resp;

    verify(pageBook, page);
  }
View Full Code Here

    //forName expects pageName to be in all-lower case (it's an optimization)
    pageName = pageName.toLowerCase();

    final PageBook pageBook = createMock(PageBook.class);
    final PageBook.Page page = createMock(PageBook.Page.class);
    final Respond mockRespond = createNiceMock(Respond.class);
    final Renderable widget = createMock(Renderable.class);

    expect(pageBook.forName(pageName))
        .andReturn(page);
View Full Code Here

    //forName expects pageName to be in all-lower case (it's an optimization)
    pageName = pageName.toLowerCase();

    final PageBook pageBook = createMock(PageBook.class);
    final PageBook.Page page = createMock(PageBook.Page.class);
    final Respond mockRespond = createMock(Respond.class);
    final Renderable widget = createMock(Renderable.class);

    expect(pageBook.forName(pageName))
        .andReturn(page);
View Full Code Here

    //forName expects pageName to be in all-lower case (it's an optimization)
    pageName = pageName.toLowerCase();

    final PageBook pageBook = createMock(PageBook.class);
    final PageBook.Page page = createMock(PageBook.Page.class);
    final Respond mockRespond = createNiceMock(Respond.class)//tolerate whatever output
    final Renderable widget = createMock(Renderable.class);

    expect(pageBook.forName(pageName))
        .andReturn(page);
View Full Code Here

public class ChooseWidgetTest {

    @Test
    public final void chooseWidgetSelectTagRender() {

        Respond respond = RespondersForTesting.newRespond();
        final String s1 = "aString";
        final String s2 = "anotherString";
        final String s3 = "aThirdStr";
        final List<String> boundTo = Arrays.asList(s1, s2, s3);

        @SuppressWarnings("unchecked")
        final Provider<FlashCache> cacheProvider = createMock(Provider.class);
        final FlashCache cache = createMock(FlashCache.class);

        expect(cacheProvider.get())
              .andReturn(cache);

        cache.put("strings", boundTo);

        replay(cacheProvider, cache);


        final ChooseWidget widget = new ChooseWidget(new ProceedingWidgetChain(), "from=strings, bind=choice", new MvelEvaluator());
        widget.setCache(cacheProvider);

        widget.render(new HashMap<String, Object>() {{
                    put("strings", boundTo);
                }}, respond);


        //assert the validity of the text tag:
        String tag = respond.toString();

//        System.out.println(tag);
        assert tag.startsWith("<select name=\"choice\">");
        assert tag.contains(String.format("<option value=\"[C/strings/%d\">", s1.hashCode()));
        assert tag.contains(String.format("<option value=\"[C/strings/%d\">", s2.hashCode()));
View Full Code Here

  }

  @Test(dataProvider = REQUIRE_TAGS)
  public final void requireWidgetsRenderToHeadTag(final String requireString)
      throws ExpressionCompileException {
    final Respond respond = RespondersForTesting.newRespond();

    respond.require(requireString);
    respond.require(requireString);

    WidgetChain chain = new ProceedingWidgetChain();
    final MvelEvaluatorCompiler compiler = new MvelEvaluatorCompiler(Object.class);

    chain.addWidget(new HeaderWidget(new TerminalWidgetChain(),
        Maps.<String, String>newHashMap(), compiler));

    chain.addWidget(new RequireWidget(requireString, compiler));
    chain.addWidget(new RequireWidget(requireString, compiler));
    chain.addWidget(new RequireWidget(requireString, compiler));

    //render
    chain.render(new Object(), respond);

    final String expected = "<head>" + requireString + "</head>";
    final String output = respond.toString();
    assert expected.equals(output) : "Header not correctly rendered: " + output;
  }
View Full Code Here

TOP

Related Classes of com.google.sitebricks.Respond

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.