/**
* Copyright 2012 Universitat Pompeu Fabra.
*
* 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 org.onexus.website.api;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.tester.WicketTester;
import org.junit.Before;
import org.junit.Test;
import org.onexus.resource.api.DefaultResourceRegister;
import org.onexus.resource.api.IResourceManager;
import org.onexus.resource.api.IResourceRegister;
import org.onexus.resource.api.IResourceSerializer;
import org.onexus.resource.api.ORI;
import org.onexus.resource.serializer.xstream.internal.ResourceSerializer;
import org.onexus.ui.authentication.jaas.JaasSignInPage;
import org.onexus.website.api.mocks.MockPaxWicketInjector;
import org.onexus.website.api.mocks.MockResourceManager;
import org.onexus.website.api.pages.DefaultPageManager;
import org.onexus.website.api.pages.IPageManager;
import org.onexus.website.api.pages.browser.BrowserPageCreator;
import org.onexus.website.api.widgets.DefaultWidgetManager;
import org.onexus.website.api.widgets.IWidgetManager;
import org.onexus.website.api.widgets.text.TextWidgetCreator;
import org.ops4j.pax.wicket.api.InjectorHolder;
import java.util.Arrays;
public class WebsiteTest {
private WicketTester tester;
@Before
public void setUp() {
// Create beans
IResourceSerializer resourceSerializer = new ResourceSerializer();
resourceSerializer.register(WebsiteConfig.class);
IResourceRegister resourceRegister = new DefaultResourceRegister(resourceSerializer);
IResourceManager resourceManager = new MockResourceManager();
IPageManager pageManager = new DefaultPageManager(
Arrays.asList(
new BrowserPageCreator()
),
resourceRegister
);
IWidgetManager widgetManager = new DefaultWidgetManager(
Arrays.asList(
new TextWidgetCreator()
),
resourceRegister
);
// Create a Website resource
WebsiteConfig website = resourceSerializer.unserialize(WebsiteConfig.class, getClass().getResourceAsStream("test1.onx"));
website.setORI(new ORI("http://localhost/test?website"));
resourceManager.save(website);
// Create and initialize a Wicket application
WebsiteApplication application = new WebsiteApplication();
application.setWebsiteOri(website.getORI());
application.setWebPath(website.getName());
application.setSignInPageClass(JaasSignInPage.class);
tester = new WicketTester(application);
// Create an injector
MockPaxWicketInjector injector = new MockPaxWicketInjector();
injector.addBean(IResourceManager.class, resourceManager);
injector.addBean(IPageManager.class, pageManager);
injector.addBean(IWidgetManager.class, widgetManager);
InjectorHolder.setInjector(application.getApplicationKey(), injector);
tester.getApplication().getComponentInstantiationListeners().add(injector);
}
@Test
public void renderPage(){
tester.startPage(new Website(new PageParameters()));
tester.assertRenderedPage(Website.class);
//tester.dumpPage();
}
}