/*******************************************************************************
* Copyright (c) 2007 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.jsf.vpe.jsf.test.jbide;
import org.eclipse.core.resources.IFile;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.part.FileEditorInput;
import org.jboss.tools.common.el.core.ELReferenceList;
import org.jboss.tools.common.resref.core.ResourceReference;
import org.jboss.tools.jsf.vpe.jsf.test.JsfAllTests;
import org.jboss.tools.jst.web.ui.internal.editor.jspeditor.JSPMultiPageEditor;
import org.jboss.tools.vpe.base.test.TestUtil;
import org.jboss.tools.vpe.base.test.VpeTest;
import org.jboss.tools.vpe.editor.VpeController;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* @author Max Areshkau
*
*/
public class JBIDE3396Test extends VpeTest{
private IFile firstPage;
private IFile secondPage;
private ResourceReference[] firstElValues;
private ResourceReference[] secondElValues;
public JBIDE3396Test() {
}
@Before
@Override
public void setUp() throws Exception {
super.setUp();
setException(null);
this.firstPage = (IFile) TestUtil.getComponentPath("JBIDE/3396/first.jsp", //$NON-NLS-1$
JsfAllTests.IMPORT_PROJECT_NAME);
this.secondPage = (IFile) TestUtil.getComponentPath("JBIDE/3396/second.jsp", //$NON-NLS-1$
JsfAllTests.IMPORT_PROJECT_NAME);
this.firstElValues = new ResourceReference[1];
this.firstElValues[0] = new ResourceReference("table.style",ResourceReference.PROJECT_SCOPE); //$NON-NLS-1$
this.firstElValues[0].setProperties("color:red;"); //$NON-NLS-1$
this.secondElValues = new ResourceReference[1];
this.secondElValues[0] = new ResourceReference("book.style", ResourceReference.PROJECT_SCOPE); //$NON-NLS-1$
this.secondElValues[0].setProperties("color:green;"); //$NON-NLS-1$
// ELReferenceList.getInstance().setAllResources(this.file,entries);
}
/* (non-Javadoc)
* @see org.jboss.tools.vpe.ui.test.VpeTest#tearDown()
*/
@After
@Override
public void tearDown() throws Exception {
ELReferenceList.getInstance().setAllResources(this.firstPage, new ResourceReference[0]);
ELReferenceList.getInstance().setAllResources(this.secondPage, new ResourceReference[0]);
if(getException()!=null) {
throw new Exception(getException());
}
super.tearDown();
}
@Test
public void testJBIDE3396() throws Exception{
//open first page and set resources
final IEditorInput firstInput = new FileEditorInput(this.firstPage);
final JSPMultiPageEditor firstEditorPart = openEditor(firstInput);
//wait while editor will be initialized
TestUtil.getVpeController(firstEditorPart);
ELReferenceList.getInstance().setAllResources(this.firstPage, this.firstElValues);
//wait for visual refresh
TestUtil.delay();
TestUtil.waitForJobs();
//open second page and
final IEditorInput secondInput = new FileEditorInput(this.secondPage);
final JSPMultiPageEditor secondEditorPart = openEditor(secondInput);
final VpeController secondPageVpeController = TestUtil.getVpeController(secondEditorPart);
final int size = secondPageVpeController.getDomMapping().getVisualMap().size();
TestUtil.delay();
ELReferenceList.getInstance().setAllResources(this.secondPage, this.secondElValues);
//wait for visual refresh
TestUtil.delay();
final ResourceReference[] elResoReferences = ELReferenceList.getInstance().getAllResources(this.secondPage);
for (final ResourceReference resourceReference : elResoReferences) {
resourceReference.setProperties(resourceReference.getProperties()+'T');
}
ELReferenceList.getInstance().setAllResources(this.secondPage, elResoReferences);
TestUtil.waitForJobs();
assertEquals("Size of map before and after appling should be equal",size, secondPageVpeController.getDomMapping().getVisualMap().size()); //$NON-NLS-1$
}
}