Package jetbrains.communicator.idea.toolWindow

Source Code of jetbrains.communicator.idea.toolWindow.UserListComponentTest

/*
* Copyright 2000-2006 JetBrains s.r.o.
*
* 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 jetbrains.communicator.idea.toolWindow;

import jetbrains.communicator.core.impl.BaseTestCase;
import jetbrains.communicator.core.EventBroadcaster;
import jetbrains.communicator.core.impl.dispatcher.LocalMessageDispatcherImpl;
import jetbrains.communicator.core.impl.users.UserImpl;
import jetbrains.communicator.core.impl.users.UserModelImpl;
import jetbrains.communicator.core.transport.TransportEvent;
import jetbrains.communicator.core.users.User;
import jetbrains.communicator.mock.MockIDEFacade;
import jetbrains.communicator.mock.MockTransport;
import jetbrains.communicator.mock.MockUser;
import jetbrains.communicator.util.TreeUtils;

import javax.swing.*;

/**
* @author Kir Maximov
*/
public class UserListComponentTest extends BaseTestCase {
  private UserListComponentImpl myUserListComponent;
  private UserModelImpl myUserModel;
  private MockIDEFacade myIdeFacade;
  private EventBroadcaster myBroadcaster;
  private LocalMessageDispatcherImpl myLocalMessageDispatcher;

  @Override
  protected void setUp() throws Exception {
    super.setUp();


    myBroadcaster = getBroadcaster();
    myIdeFacade = new MockIDEFacade(getClass());
    myUserModel = new UserModelImpl(myBroadcaster);
    disposeOnTearDown(myUserModel);
    myLocalMessageDispatcher = new LocalMessageDispatcherImpl(myBroadcaster, myIdeFacade, myUserModel);
    disposeOnTearDown(myLocalMessageDispatcher);
    myUserListComponent = new UserListComponentImpl(myUserModel, myIdeFacade, myLocalMessageDispatcher);
    disposeOnTearDown(myUserListComponent);

    getTree().updateUI(); // Emulate the UI change
  }

  public void testGetSelectedNodes() throws Exception {
    myUserModel.addGroup("a group");
    MockUser user = new MockUser("user", "group");
    myUserModel.addUser(user);

    JTree jTree = getTree();
    jTree.expandRow(1);

    jTree.setSelectionInterval(0, 2);

    Object[] selectedNodes = myUserListComponent.getSelectedNodes();
    assertEquals("a group", selectedNodes[0]);
    assertEquals("group", selectedNodes[1]);
    assertEquals(user, selectedNodes[2]);
  }

  public void testGetSelectedNodes_WhenEditing() throws Exception {
    myUserModel.addGroup("a group");

    JTree jTree = getTree();
    jTree.setSelectionRow(0);
    jTree.startEditingAtPath(jTree.getPathForRow(0));

    Object[] selectedNodes = myUserListComponent.getSelectedNodes();
    assertEquals("No nodes should be returned while editing to disable actions", 0, selectedNodes.length);
  }

  private JTree getTree() {
    return myUserListComponent.getTree();
  }

  public void testExpandGroupNodeOnUserAdd() throws Exception {
    myUserModel.addGroup("a group");
    myUserModel.addUser(new MockUser("user", "a group"));

    assertEquals("User group should be expanded", 2, getTree().getRowCount());
  }

  public void testExpandGroupMessageReceived() throws Exception {
    MockTransport transport = new MockTransport();
    User user = UserImpl.create("nick", transport.getName());
    user.setGroup("some non-default group", myUserModel);
    myUserModel.addUser(user);
    TreeUtils.collapseAll(getTree());
    assertEquals("Sanity check", 1, getTree().getRowCount());

    myBroadcaster.fireEvent(new TransportEvent(transport, "nick"){});
    assertEquals("User group should be expanded to show incoming message icon",
        2, getTree().getRowCount());
  }

  public void testSaveLoadTreeState() throws Exception {
    myUserModel.addUser(new MockUser("user1", "group"));
    myUserModel.addUser(new MockUser("user2", "group"));
    myUserModel.addGroup("daaa");
    myUserModel.addUser(new MockUser("user3", "zzzz"));
    TreeUtils.collapseAll(getTree());
    getTree().expandRow(1);
    assertEquals("Sanity check", 5, getTree().getRowCount());

    myUserListComponent.saveState();

    myUserListComponent = new UserListComponentImpl(myUserModel, myIdeFacade, myLocalMessageDispatcher);
    disposeOnTearDown(myUserListComponent);
    assertEquals("Tree state should be restored", 5, getTree().getRowCount());
  }
}
TOP

Related Classes of jetbrains.communicator.idea.toolWindow.UserListComponentTest

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.