/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * 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: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.ide.upload.file; import org.eclipse.che.ide.CoreLocalizationConstant; import com.google.gwt.core.shared.GWT; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.FileUpload; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.FormPanel; import com.google.gwtmockito.GwtMockito; import com.google.gwtmockito.GwtMockitoTestRunner; import org.eclipse.che.ide.api.machine.WsAgentURLModifier; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import static org.mockito.Matchers.anyObject; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; /** * Testing {@link UploadFileViewImpl} functionality. * * @author Roman Nikitenko. */ @RunWith(GwtMockitoTestRunner.class) public class UploadFileViewImplTest { private UploadFileViewImpl view; UploadFileViewImpl.UploadFileViewBinder binder; CoreLocalizationConstant locale; WsAgentURLModifier wsAgentURLModifier; @Before public void setup() { GwtMockito.initMocks(this); binder = GWT.create(UploadFileViewImpl.UploadFileViewBinder.class); locale = GWT.create(CoreLocalizationConstant.class); wsAgentURLModifier = GWT.create(WsAgentURLModifier.class); UploadFilePresenter presenter = mock(UploadFilePresenter.class); view = new UploadFileViewImpl(binder, locale, wsAgentURLModifier); view.setDelegate(presenter); } @Test public void getFileNameShouldBeExecuted() { view.file = mock(FileUpload.class); when(view.file.getFilename()).thenReturn("fileName"); view.getFileName(); verify(view.file).getFilename(); } @Test public void submitShouldBeExecuted() { view.submitForm = mock(FormPanel.class); view.submit(); verify(view.submitForm).submit(); } @Test public void setActionShouldBeExecuted() { view.submitForm = mock(FormPanel.class); final String url = "url"; when(wsAgentURLModifier.modify(url)).thenReturn(url); view.setAction(url); verify(view.submitForm).setAction(eq(url)); verify(view.submitForm).setMethod(eq(FormPanel.METHOD_POST)); } @Test public void setEncodingShouldBeExecuted() { view.submitForm = mock(FormPanel.class); view.setEncoding(FormPanel.ENCODING_MULTIPART); verify(view.submitForm).setEncoding(eq(FormPanel.ENCODING_MULTIPART)); } @Test public void setEnabledUploadButtonShouldBeExecuted() { view.btnUpload = mock(Button.class); view.setEnabledUploadButton(true); verify(view.btnUpload).setEnabled(eq(true)); } @Test public void closeShouldBeExecuted() { view.uploadPanel = mock(FlowPanel.class); view.file = mock(FileUpload.class); view.overwrite = mock(CheckBox.class); view.btnUpload = mock(Button.class); view.closeDialog(); verify(view.uploadPanel).remove((FileUpload)anyObject()); verify(view.btnUpload).setEnabled(eq(false)); verify(view.overwrite).setValue(eq(false)); } }