Package rabbit.ui.internal.pages

Source Code of rabbit.ui.internal.pages.AbsPageTest

/*
* Copyright 2010 The Rabbit Eclipse Plug-in Project
*
* 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 rabbit.ui.internal.pages;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.XMLMemento;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import static java.util.Arrays.asList;

/**
* @see AbsPage
*/
public abstract class AbsPageTest {

  private static Shell shell;

  @BeforeClass
  public static void setupBeforeClass() {
    shell = new Shell(PlatformUI.getWorkbench().getDisplay());
  }

  @AfterClass
  public static void tearDownAfterClass() {
    shell.dispose();
  }

  private AbsPage page;
  private Category[] supportedCategories;

  @Before
  public void setup() {
    page = create();
    page.createContents(shell);
    supportedCategories = getSupportedCategories();
  }

  @Test
  public void shouldSaveAndRestoreTheColumnWidths() {
    Tree tree = page.getFilteredTree().getViewer().getTree();

    int width1 = 123;
    int width2 = 321;
    TreeColumn column1 = new TreeColumn(tree, SWT.NONE);
    TreeColumn column2 = new TreeColumn(tree, SWT.NONE);
    column1.setWidth(width1);
    column2.setWidth(width2);

    IMemento memento = XMLMemento.createWriteRoot("Testing");
    page.onSaveState(memento);

    column1.setWidth(column1.getWidth() * 2);
    page.onRestoreState(memento);

    assertThat(column1.getWidth(), equalTo(width1));
    assertThat(column2.getWidth(), equalTo(width2));
  }

  @Test
  public void shouldSaveAndRestoreTheVisualCategory() {
    page.setVisualCategory(supportedCategories[0]);

    IMemento memento = XMLMemento.createWriteRoot("Testing");
    page.onSaveState(memento);
    page.setVisualCategory(supportedCategories[1]);
    page.onRestoreState(memento);

    assertThat(page.getVisualCategory(), equalTo(supportedCategories[0]));
  }

  @Test
  public void shouldSaveAndRetoreTheSelectedCategories() {
    page.setSelectedCategories(asList(supportedCategories[0]));

    IMemento memento = XMLMemento.createWriteRoot("Testing");
    page.onSaveState(memento);
    page.setSelectedCategories(asList(supportedCategories[1]));
    page.onRestoreState(memento);

    assertThat(page.getSelectedCategories(),
        equalTo(new Category[]{supportedCategories[0]}));
  }

  protected abstract AbsPage create();

  protected abstract Category[] getSupportedCategories();
}
TOP

Related Classes of rabbit.ui.internal.pages.AbsPageTest

TOP
Copyright © 2018 www.massapi.com. 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.