/*******************************************************************************
* Copyright (c) 2012, 2016 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.rap.rwt.client;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.client.service.BrowserNavigation;
import org.eclipse.rap.rwt.client.service.ClientFileLoader;
import org.eclipse.rap.rwt.client.service.ClientFileUploader;
import org.eclipse.rap.rwt.client.service.ClientInfo;
import org.eclipse.rap.rwt.client.service.ClientService;
import org.eclipse.rap.rwt.client.service.ExitConfirmation;
import org.eclipse.rap.rwt.client.service.JavaScriptExecutor;
import org.eclipse.rap.rwt.client.service.JavaScriptLoader;
import org.eclipse.rap.rwt.client.service.StartupParameters;
import org.eclipse.rap.rwt.client.service.UrlLauncher;
import org.eclipse.rap.rwt.internal.client.BrowserNavigationImpl;
import org.eclipse.rap.rwt.internal.client.ClientFileLoaderImpl;
import org.eclipse.rap.rwt.internal.client.ClientFileUploaderImpl;
import org.eclipse.rap.rwt.internal.client.ClientInfoImpl;
import org.eclipse.rap.rwt.internal.client.ClientMessages;
import org.eclipse.rap.rwt.internal.client.ConnectionMessages;
import org.eclipse.rap.rwt.internal.client.ConnectionMessagesImpl;
import org.eclipse.rap.rwt.internal.client.ExitConfirmationImpl;
import org.eclipse.rap.rwt.internal.client.JavaScriptExecutorImpl;
import org.eclipse.rap.rwt.internal.client.JavaScriptLoaderImpl;
import org.eclipse.rap.rwt.internal.client.StartupParametersImpl;
import org.eclipse.rap.rwt.internal.client.UrlLauncherImpl;
import org.eclipse.rap.rwt.internal.client.WebClientMessages;
import org.eclipse.rap.rwt.internal.remote.ConnectionImpl;
import org.eclipse.rap.rwt.internal.resources.JavaScriptModuleLoader;
import org.eclipse.rap.rwt.internal.resources.JavaScriptModuleLoaderImpl;
import org.eclipse.rap.rwt.testfixture.internal.Fixture;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class WebClient_Test {
private WebClient client;
@Before
public void setUp() {
Fixture.setUp();
client = new WebClient();
}
@After
public void tearDown() {
Fixture.tearDown();
}
@Test
public void testGetInvalidService() {
assertNull( client.getService( UnsupportedService.class ) );
}
@Test
public void testGetServiveTwice() {
ClientService service1 = client.getService( JavaScriptExecutor.class );
ClientService service2 = client.getService( JavaScriptExecutor.class );
assertSame( service1, service2 );
}
@Test
public void testGetClienInfoService() {
ClientService service = client.getService( ClientInfo.class );
assertTrue( service instanceof ClientInfoImpl );
}
@Test
public void testGetUrlLauncherService() {
ClientService service = client.getService( UrlLauncher.class );
assertTrue( service instanceof UrlLauncherImpl );
}
@Test
public void testRegistersClienInfoHandlerOnCreate() {
try {
ConnectionImpl connection = ( ConnectionImpl )RWT.getUISession().getConnection();
connection.createServiceObject( "rwt.client.ClientInfo" );
fail();
} catch( IllegalArgumentException ex ) {
// expected
}
}
@Test
public void testGetJavaScriptExecutorService() {
ClientService service = client.getService( JavaScriptExecutor.class );
assertTrue( service instanceof JavaScriptExecutorImpl );
}
@Test
public void testGetBrowserHistoryService() {
ClientService service = client.getService( BrowserNavigation.class );
assertTrue( service instanceof BrowserNavigationImpl );
}
@Test
public void testGetExitConfirmationService() {
ClientService service = client.getService( ExitConfirmation.class );
assertTrue( service instanceof ExitConfirmationImpl );
}
@Test
public void testGetConnectionMessagesService() {
ClientService service = client.getService( ConnectionMessages.class );
assertTrue( service instanceof ConnectionMessagesImpl );
}
@Test
public void testGetJavaScriptLoaderService() {
ClientService service = client.getService( JavaScriptLoader.class );
assertTrue( service instanceof JavaScriptLoaderImpl );
}
@Test
public void testGetJavaScriptModuleLoaderService() {
ClientService service = client.getService( JavaScriptModuleLoader.class );
assertTrue( service instanceof JavaScriptModuleLoaderImpl );
}
@Test
public void testGetClientMessagesService() {
ClientService service = client.getService( ClientMessages.class );
assertTrue( service instanceof WebClientMessages );
}
@Test
public void testGetClientFileLoaderService() {
ClientService service = client.getService( ClientFileLoader.class );
assertTrue( service instanceof ClientFileLoaderImpl );
}
@Test
public void testGetClientFileUploaderService() {
ClientService service = client.getService( ClientFileUploader.class );
assertTrue( service instanceof ClientFileUploaderImpl );
}
@Test
public void testGetStartupParametersService() {
ClientService service = client.getService( StartupParameters.class );
assertTrue( service instanceof StartupParametersImpl );
}
private static class UnsupportedService implements ClientService {
}
}