Package rabbit.ui.internal

Source Code of rabbit.ui.internal.CalendarActionTest

/*
* 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;

import rabbit.ui.internal.CalendarAction;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotDateTime;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.eclipse.ui.PlatformUI;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;

/**
* @see CalendarAction
*/
@RunWith(SWTBotJunit4ClassRunner.class)
public class CalendarActionTest {

  private static Shell shell;
  @AfterClass
  public static void afterClass() {
    shell.getDisplay().syncExec(new Runnable() {
      @Override
      public void run() {
        shell.dispose();
      }
    });
  }

  @BeforeClass
  public static void beforeClass() {
    final Display dis = PlatformUI.getWorkbench().getDisplay();
    dis.syncExec(new Runnable() {
      @Override
      public void run() {
        shell = new Shell(dis);
      }
    });
  }

  private ToolBarManager manager;

  @Before
  public void before() {
    manager = new ToolBarManager(SWT.NONE);
    shell.getDisplay().syncExec(new Runnable() {
      @Override
      public void run() {
        manager.createControl(shell);
      }
    });
  }

  @Test
  public void testDateTimeWidget() {
    Format format = new SimpleDateFormat(CalendarAction.DATE_FORMAT);
    Calendar date = new GregorianCalendar(2100, Calendar.JANUARY, 1);
    CalendarAction action = CalendarAction.create(manager, shell, date, null,
        null);

    SWTBotDateTime bot = new SWTBotDateTime(action.getDateTime());
    assertEquals(format.format(date.getTime()), format.format(bot.getDate()));

    date = new GregorianCalendar(2012, Calendar.DECEMBER, 21);
    bot.setDate(date.getTime());
    assertEquals(format.format(date.getTime()), action.getText());

    Calendar cal = action.getCalendar();
    assertEquals(format.format(date.getTime()), format.format(cal.getTime()));
  }

  @Test
  public void testFormat() {
    Calendar date = Calendar.getInstance();
    Format format = new SimpleDateFormat(CalendarAction.DATE_FORMAT);
    String text = format.format(date.getTime());
    IAction action = CalendarAction.create(manager, shell, date, null, null);
    assertEquals(text, action.getText());
  }

  @Test
  public void testPrefixSuffix() {
    String prefix = "abc";
    String suffix = "xyz";
    IAction action = CalendarAction.create(manager, shell, Calendar
        .getInstance(), prefix, suffix);
    assertTrue(action.getText().startsWith(prefix));
    assertTrue(action.getText().endsWith(suffix));
  }

  @Test
  public void testTodayLink() {
    Calendar today = Calendar.getInstance();
    Calendar notToday = (Calendar) today.clone();
    notToday.add(Calendar.MONTH, 1);
    final CalendarAction action = CalendarAction.create(manager, shell,
        notToday, null, null);

    shell.getDisplay().syncExec(new Runnable() {
      @Override
      public void run() {
        action.getShell().open();
      }
    });

    SWTBotShell bot = new SWTBotShell(action.getShell());
    bot.bot().link().click();

    Format format = new SimpleDateFormat(CalendarAction.DATE_FORMAT);
    assertEquals(format.format(today.getTime()), action.getText());

    Calendar cal = action.getCalendar();
    assertEquals(format.format(today.getTime()), format.format(cal.getTime()));
  }
}
TOP

Related Classes of rabbit.ui.internal.CalendarActionTest

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.