/*******************************************************************************
* Copyright (c) 2009, 2014 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are 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:
* EclipseSource - initial API and implementation
******************************************************************************/
package org.eclipse.swt.widgets;
import static org.eclipse.rap.rwt.testfixture.internal.SerializationTestUtil.serializeAndDeserialize;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.eclipse.rap.rwt.testfixture.internal.Fixture;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.internal.widgets.IDisplayAdapter;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class Monitor_Test {
private Display display;
@Before
public void setUp() {
Fixture.setUp();
display = new Display();
}
@After
public void tearDown() {
Fixture.tearDown();
}
@Test
public void testBounds() {
Object adapter = display.getAdapter( IDisplayAdapter.class );
IDisplayAdapter displayAdapter = ( IDisplayAdapter )adapter;
Rectangle expectedBounds = new Rectangle( 10, 20, 30, 40 );
displayAdapter.setBounds( expectedBounds );
Monitor primaryMonitor = display.getPrimaryMonitor();
assertNotNull( primaryMonitor );
Rectangle monitorBounds = primaryMonitor.getBounds();
assertNotNull( monitorBounds );
assertEquals( new Rectangle( 10, 20, 30, 40 ), monitorBounds );
// test dynamic bounds
displayAdapter.setBounds( new Rectangle( 100, 200, 300, 400 ) );
Rectangle newMonitorBounds = primaryMonitor.getBounds();
assertEquals( new Rectangle( 100, 200, 300, 400 ), newMonitorBounds );
}
@Test
public void testClientArea() {
Object adapter = display.getAdapter( IDisplayAdapter.class );
IDisplayAdapter displayAdapter = ( IDisplayAdapter )adapter;
Rectangle expectedBounds = new Rectangle( 10, 20, 30, 40 );
displayAdapter.setBounds( expectedBounds );
Monitor primaryMonitor = display.getPrimaryMonitor();
assertNotNull( primaryMonitor );
Rectangle monitorClientArea = primaryMonitor.getClientArea();
assertNotNull( monitorClientArea );
assertEquals( new Rectangle( 10, 20, 30, 40 ), monitorClientArea );
// test dynamic client area
displayAdapter.setBounds( new Rectangle( 100, 200, 300, 400 ) );
Rectangle newMonitorClientArea = primaryMonitor.getClientArea();
assertEquals( new Rectangle( 100, 200, 300, 400 ), newMonitorClientArea );
}
@Test
public void testEquals() {
Monitor primaryMonitor = display.getPrimaryMonitor();
Monitor[] monitors = display.getMonitors();
assertEquals( primaryMonitor, monitors[ 0 ] );
}
@Test
public void testIsSerializable() throws Exception {
Monitor monitor = display.getPrimaryMonitor();
Rectangle bounds = monitor.getBounds();
Monitor deserializedMonitor = serializeAndDeserialize( monitor );
getDisplayAdapter( deserializedMonitor.display ).attachThread();
assertEquals( bounds, deserializedMonitor.getBounds() );
}
private IDisplayAdapter getDisplayAdapter( Display display ) {
return display.getAdapter( IDisplayAdapter.class );
}
}