Skip to content

Commit

Permalink
(ECM-876) Updated integration tests
Browse files Browse the repository at this point in the history
  • Loading branch information
julyantonicheva committed Nov 22, 2013
1 parent a20e700 commit 2b99c4c
Show file tree
Hide file tree
Showing 13 changed files with 421 additions and 368 deletions.
49 changes: 32 additions & 17 deletions test/integration/ImportExportTests.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,22 @@ import org.weceem.wiki.*
import org.weceem.files.*

import org.weceem.AbstractServletContextMockingTest
import grails.util.Holders
import org.weceem.services.WcmImportExportService
import grails.test.mixin.TestMixin
import grails.test.mixin.integration.IntegrationTestMixin
import grails.test.mixin.TestFor
import org.junit.Test
import org.junit.Before
import grails.test.mixin.support.GrailsUnitTestMixin

/**
* ImportExportTests.
*
* @author Sergei Shushkevich
*/

@TestMixin(IntegrationTestMixin)
class ImportExportTests extends AbstractServletContextMockingTest
implements ApplicationContextAware {

Expand All @@ -28,12 +38,13 @@ class ImportExportTests extends AbstractServletContextMockingTest
def applicationContext
def grailsApplication

@Before
public void setUp() {
initFakeServletContextPath('test/files/importExport')

grailsApplication.mainContext.servletContext = ServletContextHolder.servletContext
grailsApplication.mainContext.simpleSpaceImporter.proxyHandler = [unwrapIfProxy: { o -> o}]
grailsApplication.mainContext.simpleSpaceExporter.proxyHandler = [unwrapIfProxy: { o -> o}]
Holders.grailsApplication.mainContext.servletContext = ServletContextHolder.servletContext
Holders.grailsApplication.mainContext.simpleSpaceImporter.proxyHandler = [unwrapIfProxy: { o -> o}]
Holders.grailsApplication.mainContext.simpleSpaceExporter.proxyHandler = [unwrapIfProxy: { o -> o}]

new WcmSpace(name: 'testSpace', aliasURI:'main').save(flush: true)
}
Expand Down Expand Up @@ -72,7 +83,8 @@ class ImportExportTests extends AbstractServletContextMockingTest
def ant = new AntBuilder()
ant.delete(dir: servletContext.getRealPath("/${org.weceem.services.WcmContentRepositoryService.uploadDir}/${space.makeUploadName()}"))
}
*/
*/
@Test
void testSimpleImport() {
def servletContext = ServletContextHolder.servletContext
def importFile = new File(
Expand All @@ -91,21 +103,22 @@ class ImportExportTests extends AbstractServletContextMockingTest
// check content
assert WcmTemplate.findByAliasURIAndSpace('testTemplate', space)
def htmlContent = WcmHTMLContent.findByAliasURIAndSpace('testHtmlContent', space)
assertNotNull htmlContent
assert htmlContent

assertNotNull WcmContentDirectory.findByAliasURIAndSpace('test_dir', space)
assertNotNull WcmContentFile.findByAliasURIAndSpace('test_file', space)
assertTrue WcmContentDirectory.findByAliasURIAndSpace('test_dir', space).children.size() != 0
assert WcmContentDirectory.findByAliasURIAndSpace('test_dir', space)
assert WcmContentFile.findByAliasURIAndSpace('test_file', space)
assert WcmContentDirectory.findByAliasURIAndSpace('test_dir', space).children.size() != 0

// check unpacked files
assertTrue org.weceem.services.WcmContentRepositoryService.getUploadPath(space, 'test_dir').exists()
assertTrue org.weceem.services.WcmContentRepositoryService.getUploadPath(space, '/test_dir/test_file.txt').exists()
assert org.weceem.services.WcmContentRepositoryService.getUploadPath(space, 'test_dir').exists()
assert org.weceem.services.WcmContentRepositoryService.getUploadPath(space, '/test_dir/test_file.txt').exists()

def ant = new AntBuilder()
ant.delete(dir:
org.weceem.services.WcmContentRepositoryService.getUploadPath(space))
}


@Test
void testSimpleExport() {
initDefaultData()
def servletContext = ServletContextHolder.servletContext
Expand Down Expand Up @@ -136,19 +149,20 @@ class ImportExportTests extends AbstractServletContextMockingTest
def xmlFile = new File(tmpDir, 'content.xml')
def result = new XmlSlurper().parseText(xmlFile.text)
assert result.children().size() == 5
assertEquals 'org.weceem.content.WcmTemplate', result.children()[0].name().toString()
assertEquals 'org.weceem.content.WcmVirtualContent', result.children()[4].name().toString()
assert 'org.weceem.content.WcmTemplate'.equals(result.children()[0].name().toString())
assert 'org.weceem.content.WcmVirtualContent'.equals(result.children()[4].name().toString())

assertEquals 'testTemplate', result.children()[0].aliasURI.toString()
assertEquals 'test_file.txt', result.children()[3].aliasURI.toString()
assert 'testTemplate'.equals(result.children()[0].aliasURI.toString())
assert 'test_file.txt'.equals(result.children()[3].aliasURI.toString())

assertEquals 'virt_cont', result.children()[4].aliasURI.toString()
assert 'virt_cont'.equals(result.children()[4].aliasURI.toString())
assert result.children()[4].parent.toString().length() != 0
assert result.children()[4].target.toString().length() != 0

ant.delete(dir: tmpDir.absolutePath)
}

@Test
void testConfluenceImport() {
def importFile = new File(
ServletContextHolder.servletContext.getRealPath('/test_confluence_import.xml'))
Expand All @@ -160,7 +174,8 @@ class ImportExportTests extends AbstractServletContextMockingTest
// check content
assert WcmWikiItem.findByAliasURIAndSpace('Home', space)
}


@Test
void testFixOrderImport() {
// test inport file without orderIndexes
def servletContext = ServletContextHolder.servletContext
Expand Down
68 changes: 36 additions & 32 deletions test/integration/MenuTagTests.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ import org.weceem.tags.*
*
* These old tests BAD because they are not mocking the services, so they are testing the services and controller
*/
import grails.test.mixin.TestMixin
import grails.test.mixin.integration.IntegrationTestMixin

@TestMixin(IntegrationTestMixin)
class MenuTagTests extends AbstractWeceemIntegrationTest {
def statusA
def statusB
Expand Down Expand Up @@ -105,17 +109,17 @@ class MenuTagTests extends AbstractWeceemIntegrationTest {

def markup = new XmlSlurper().parseText("<body>$out</body>")

assertEquals 1, markup.ul.size()
assertEquals 2, markup.ul.li.size()
assertEquals "Parent A", markup.ul.li[0].a.text()
assertEquals "Parent B", markup.ul.li[1].a.text()
assert 1.equals(markup.ul.size())
assert 2.equals(markup.ul.li.size())
assert "Parent A".equals(markup.ul.li[0].a.text())
assert "Parent B".equals(markup.ul.li[1].a.text())
def pA = markup.ul.li[0]
def lichildren = pA.dump()
println lichildren

assertEquals 2, pA.'*'.li.size()
assertEquals "Child A1", pA.'*'.li[0].a.text()
assertEquals "Child A2", pA.'*'.li[1].a.text()
assert 2.equals(pA.'*'.li.size())
assert "Child A1".equals(pA.'*'.li[0].a.text())
assert "Child A2".equals(pA.'*'.li[1].a.text())
}

void testCustomMenuWithChildrenOfCurrentPage() {
Expand Down Expand Up @@ -181,7 +185,7 @@ class MenuTagTests extends AbstractWeceemIntegrationTest {

println "Menu tag yielded: ${r}"

assertEquals """|FIRST-0|
assert """|FIRST-0|
NODE: Parent A
ACTIVE: true
|FIRST-1|
Expand All @@ -193,7 +197,7 @@ ACTIVE: false
NODE: Parent B
ACTIVE: false
|LAST-0|
""", r
""".toString().equals(r)

}

Expand Down Expand Up @@ -262,7 +266,7 @@ ACTIVE: false

println "Menu tag yielded: ${r}"

assertEquals """|FIRST-0|
assert """|FIRST-0|
NODE: Parent A
ACTIVE: false
|FIRST-1|
Expand All @@ -274,7 +278,7 @@ ACTIVE: true
NODE: Parent B
ACTIVE: false
|LAST-0|
""", r
""".toString().equals(r)

def pi = _wcmRenderEngine.makePageInfo(parentA.aliasURI, childA1)
// Now try again using lineage of childA1
Expand Down Expand Up @@ -303,13 +307,13 @@ ACTIVE: false

println "Menu tag yielded: ${r}"

assertEquals """|FIRST-0|
assert """|FIRST-0|
NODE: Child A1
ACTIVE: true
NODE: Child A2
ACTIVE: false
|LAST-0|
""", r
""".toString().equals(r)
}

void testDeepMenuWithChildrenOfCurrentPage() {
Expand Down Expand Up @@ -416,26 +420,26 @@ ACTIVE: false

def markup = new XmlSlurper().parseText("<body>$out</body>")

assertEquals 1, markup.ul.size()
assertEquals 2, markup.ul.li.size()
assertEquals "Parent A", markup.ul.li[0].a.text()
assertEquals "Parent B", markup.ul.li[1].a.text()
assert 1.equals(markup.ul.size())
assert 2.equals(markup.ul.li.size())
assert "Parent A".equals(markup.ul.li[0].a.text())
assert "Parent B".equals(markup.ul.li[1].a.text())
def pA = markup.ul.li[0]
def lichildren = pA.dump()
println lichildren

assertEquals 2, pA.'*'.li.size()
assertEquals "Child A1", pA.'*'.li[0].a.text()
assertEquals "Child A2", pA.'*'.li[1].a.text()
assert 2.equals(pA.'*'.li.size())
assert "Child A1".equals(pA.'*'.li[0].a.text())
assert "Child A2".equals(pA.'*'.li[1].a.text())

def subparent = pA.'*'.li[0].'*'
assertEquals 2, subparent.li.size()
assertEquals "Child A1_1", subparent.li[0].a.text()
assertEquals "Child A1_2", subparent.li[1].a.text()
assert 2.equals(subparent.li.size())
assert "Child A1_1".equals(subparent.li[0].a.text())
assert "Child A1_2".equals(subparent.li[1].a.text())

subparent = pA.'*'.li[1].'*'
assertEquals 1, subparent.li.size()
assertEquals "Child A2_1", subparent.li[0].a.text()
assert 1.equals(subparent.li.size())
assert "Child A2_1".equals(subparent.li[0].a.text())
}

void testDeepMenuWithChildrenOfAnotherContentNode() {
Expand Down Expand Up @@ -543,9 +547,9 @@ ACTIVE: false

def markup = new XmlSlurper().parseText("<body>$out</body>")

assertEquals 1, markup.ul.size()
assertEquals 1, markup.ul.li.size()
assertEquals "Child A2_1", markup.ul.li[0].a.text()
assert 1.equals(markup.ul.size())
assert 1.equals(markup.ul.li.size())
assert "Child A2_1".equals(markup.ul.li[0].a.text())
}

void testShallowMenu() {
Expand Down Expand Up @@ -601,9 +605,9 @@ ACTIVE: false

def markup = new XmlSlurper().parseText("<body>$out</body>")

assertEquals 1, markup.ul.size()
assertEquals 2, markup.ul.li.size()
assertEquals "Parent A", markup.ul.li[0].a.text()
assertEquals "Parent B", markup.ul.li[1].a.text()
assert 1.equals(markup.ul.size())
assert 2.equals(markup.ul.li.size())
assert "Parent A".equals(markup.ul.li[0].a.text())
assert "Parent B".equals(markup.ul.li[1].a.text())
}
}
27 changes: 16 additions & 11 deletions test/integration/SearchTests.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@ import org.weceem.AbstractWeceemIntegrationTest

import org.weceem.content.*
import org.weceem.html.*
import grails.test.mixin.TestMixin
import grails.test.mixin.integration.IntegrationTestMixin

/**
* ContentRepositoryTests class contains tests for tree operations from
* wcmContentRepositoryService.
*
* These old tests BAD because they are not mocking the services, so they are testing the services and controller
*/

@TestMixin(IntegrationTestMixin)
class SearchTests extends AbstractWeceemIntegrationTest {
def statusA
def statusB
Expand Down Expand Up @@ -78,13 +82,13 @@ class SearchTests extends AbstractWeceemIntegrationTest {

def resultData = wcmContentRepositoryService.searchForContent('content', spaceA, null, [max:pageSize])

assertEquals pageSize, resultData.results.size()
assertTrue resultData.results.every { it.space.id == spaceA.id }
assert pageSize.equals(resultData.results.size())
assert resultData.results.every { it.space.id == spaceA.id }

resultData = wcmContentRepositoryService.searchForContent('content', spaceB, null, [max:pageSize])

assertEquals 10, resultData.results.size()
assertTrue resultData.results.every { it.space.id == spaceB.id }
assert resultData.results.size().equals(10)
assert resultData.results.every { it.space.id == spaceB.id }
}

/* commented out because for now this doesn't work and we're deferring this until a later version
Expand All @@ -107,23 +111,24 @@ class SearchTests extends AbstractWeceemIntegrationTest {
def pagesize = 10
def resultData = wcmContentRepositoryService.searchForPublicContent('content', spaceA, null, [max:pagesize])

assertEquals pagesize, resultData.results.size()
assertTrue resultData.results.every { n -> n.status.publicContent == true }
assert pagesize.equals(resultData.results.size())
assert resultData.results.every { n -> n.status.publicContent == true }

def resultData2 = wcmContentRepositoryService.searchForPublicContent('content', spaceA, null, [max:pagesize, offset:pagesize])

assertEquals pagesize, resultData2.results.size()
assertTrue resultData2.results.every { r ->
assert pagesize.equals(resultData2.results.size())
assert resultData2.results.every { r ->
r.status.publicContent && !resultData.results.find { n -> n.id == r.id }
}
}

void testSearchForPublicContentExcludesUnpublishedContent() {
def pageSize = 50
def resultData = wcmContentRepositoryService.searchForPublicContent('content', spaceA, null, [max:pageSize])

assertEquals pageSize / 2, resultData.results.size()
assertTrue resultData.results.every { it.status.publicContent == true }

int size = Math.round(pageSize / 2)
assert resultData.results.size().equals(size)
assert resultData.results.every { it.status.publicContent == true }
}

/* commented out as we can't get this implementation to work at all, Searchable/Compass issues
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,17 @@ package org.weceem
import org.springframework.web.context.WebApplicationContext
import org.springframework.mock.web.MockServletContext
import org.springframework.core.io.FileSystemResourceLoader
import org.codehaus.groovy.grails.web.servlet.GrailsApplicationAttributes
import org.codehaus.groovy.grails.web.context.ServletContextHolder
import grails.util.Holders

import org.weceem.services.*
import org.weceem.content.*

abstract class AbstractServletContextMockingTest extends GroovyTestCase {
abstract class AbstractServletContextMockingTest {
def oldServletContext

void tearDown() {
super.tearDown()

if (oldServletContext) {
ServletContextHolder.servletContext = oldServletContext
}

}

void initFakeServletContextPath(path) {
Expand All @@ -27,6 +23,6 @@ abstract class AbstractServletContextMockingTest extends GroovyTestCase {
path, new FileSystemResourceLoader())
ServletContextHolder.servletContext.setAttribute(
WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,
grailsApplication.mainContext)
Holders.grailsApplication.mainContext)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ abstract class AbstractWeceemIntegrationTest extends AbstractServletContextMocki
def oldSecurityServiceProxyHandler

void setUp() {
super.setUp()
//super.setUp()

// WcmContentRepositoryService.metaClass.getLog = { ->
// [
Expand Down Expand Up @@ -64,7 +64,7 @@ abstract class AbstractWeceemIntegrationTest extends AbstractServletContextMocki

wcmContentRepositoryService.wcmSecurityService.proxyHandler = oldSecurityServiceProxyHandler

super.tearDown()
// super.tearDown()

}

Expand Down
Loading

0 comments on commit 2b99c4c

Please sign in to comment.