/*
* (C) Copyright 2014 Nuxeo SA (http://nuxeo.com/) and others.
*
* 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.
*
* Contributors:
* Anahide Tchertchian
*/
package org.nuxeo.ecm.platform.url.codec;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import javax.inject.Inject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.nuxeo.ecm.core.api.IdRef;
import org.nuxeo.ecm.core.api.PathRef;
import org.nuxeo.ecm.core.api.impl.DocumentLocationImpl;
import org.nuxeo.ecm.platform.url.DocumentViewImpl;
import org.nuxeo.ecm.platform.url.api.DocumentView;
import org.nuxeo.ecm.platform.url.api.DocumentViewCodecManager;
import org.nuxeo.runtime.test.runner.Deploy;
import org.nuxeo.runtime.test.runner.Features;
import org.nuxeo.runtime.test.runner.FeaturesRunner;
import org.nuxeo.runtime.test.runner.RuntimeFeature;
/**
* @since 6.0
*/
@RunWith(FeaturesRunner.class)
@Features(RuntimeFeature.class)
@Deploy("org.nuxeo.ecm.platform.url.core")
public class TestDocumentViewService {
@Inject
protected DocumentViewCodecManager service;
@Test
public void testServiceLookup() {
assertNotNull(service);
}
@Test
public void testServiceDefaultCodec() {
assertEquals("docid", service.getDefaultCodecName());
}
@Test
public void testDocumentViewFromUrl() {
String baseUrl = "http://foo.bar";
DocumentView docView = service.getDocumentViewFromUrl("docid", "nxdoc/repo/1234/view_documents?tabId=foo",
false, baseUrl);
assertNotNull(docView);
assertEquals("view_documents", docView.getViewId());
assertEquals("foo", docView.getParameter("tabId"));
}
@Test
public void testUrlFromDocumentView() {
DocumentView docView = new DocumentViewImpl(new DocumentLocationImpl("repo", new PathRef("/ws/my/doc")),
"view_doc");
assertEquals("nxpath/repo/ws/my/doc@view_doc", service.getUrlFromDocumentView(docView, false, null));
assertNull(service.getUrlFromDocumentView("docid", docView, false, null));
docView = new DocumentViewImpl(new DocumentLocationImpl("repo", new IdRef("1234")), "view_doc");
assertEquals("nxdoc/repo/1234/view_doc", service.getUrlFromDocumentView("docid", docView, false, null));
assertEquals("nxdoc/repo/1234/view_doc", service.getUrlFromDocumentView("docid", docView, true, null));
assertEquals("http://foo/bar/nxdoc/repo/1234/view_doc",
service.getUrlFromDocumentView("docid", docView, true, "http://foo/bar/"));
assertEquals("http://foo/bar/nxdoc/repo/1234/view_doc",
service.getUrlFromDocumentView("docid", docView, true, "http://foo/bar"));
}
}