ListDemoTest.java revision 13978:1993af50385d
155682Smarkm/* 2233294Sstas * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. 3233294Sstas * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4233294Sstas * 555682Smarkm * This code is free software; you can redistribute it and/or modify it 6233294Sstas * under the terms of the GNU General Public License version 2 only, as 7233294Sstas * published by the Free Software Foundation. 8233294Sstas * 955682Smarkm * This code is distributed in the hope that it will be useful, but WITHOUT 10233294Sstas * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11233294Sstas * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1255682Smarkm * version 2 for more details (a copy is included in the LICENSE file that 13233294Sstas * accompanied this code). 14233294Sstas * 15233294Sstas * You should have received a copy of the GNU General Public License version 1655682Smarkm * 2 along with this work; if not, write to the Free Software Foundation, 17233294Sstas * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18233294Sstas * 19233294Sstas * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2055682Smarkm * or visit www.oracle.com if you need additional information or have any 21233294Sstas * questions. 22233294Sstas */ 23233294Sstas 24233294Sstasimport com.sun.swingset3.demos.list.ListDemo; 25233294Sstasimport static com.sun.swingset3.demos.list.ListDemo.DEMO_TITLE; 26233294Sstasimport static org.testng.AssertJUnit.*; 27233294Sstasimport org.testng.annotations.Test; 28233294Sstasimport static org.jemmy2ext.JemmyExt.getLabeledContainerOperator; 29233294Sstasimport org.netbeans.jemmy.ClassReference; 30233294Sstasimport org.netbeans.jemmy.operators.JCheckBoxOperator; 31233294Sstasimport org.netbeans.jemmy.operators.JFrameOperator; 3255682Smarkmimport org.netbeans.jemmy.operators.JListOperator; 3355682Smarkmimport static org.jemmy2ext.JemmyExt.captureDebugInfoOnFail; 3455682Smarkm 3555682Smarkm/* 36233294Sstas * @test 3755682Smarkm * @key headful 3855682Smarkm * @summary Verifies SwingSet3 ListDemo page by checking and unchecking all 3955682Smarkm * the checkboxes on the page and verifying the number of items in the 4055682Smarkm * list. 4155682Smarkm * 4255682Smarkm * @library /sanity/client/lib/jemmy/src 4355682Smarkm * @library /sanity/client/lib/Jemmy2Ext/src 4455682Smarkm * @library /sanity/client/lib/SwingSet3/src 4555682Smarkm * @build org.jemmy2ext.JemmyExt 4690926Snectar * @build com.sun.swingset3.demos.list.ListDemo 4790926Snectar * @run testng ListDemoTest 4855682Smarkm */ 4990926Snectarpublic class ListDemoTest { 5078527Sassar 51233294Sstas private static final int CHECKBOX_COUNT = 50; 5278527Sassar 5378527Sassar @Test 5490926Snectar public void test() throws Exception { 5590926Snectar captureDebugInfoOnFail(() -> { 5690926Snectar new ClassReference(ListDemo.class.getCanonicalName()).startApplication(); 57233294Sstas 58233294Sstas JFrameOperator frame = new JFrameOperator(DEMO_TITLE); 59233294Sstas JListOperator listOp = new JListOperator(frame); 6078527Sassar 6172445Sassar // Check *NO* Prefix and Suffixes Marked 6290926Snectar for (int i = 0; i < CHECKBOX_COUNT; i++) { 6390926Snectar JCheckBoxOperator checkBox = getJCheckBoxOperator(frame, i); 6490926Snectar checkBox.changeSelection(false); 6590926Snectar } 6690926Snectar System.out.println("######## Number of Items = " + listOp.getModel().getSize()); 6790926Snectar assertEquals("Select None number of items is correct", 0, listOp.getModel().getSize()); 6855682Smarkm 69 // Check *ALL* Prefix and Suffixes Marked 70 for (int i = 0; i < CHECKBOX_COUNT; i++) { 71 JCheckBoxOperator checkBox = getJCheckBoxOperator(frame, i); 72 checkBox.changeSelection(true); 73 } 74 System.out.println("######## Number of Items = " + listOp.getModel().getSize()); 75 assertEquals("Select All number of items is correct", CHECKBOX_COUNT / 2 * CHECKBOX_COUNT / 2, listOp.getModel().getSize()); 76 77 // Check *ALL* Prefix and *NO* Suffixes Marked 78 for (int i = 0; i < CHECKBOX_COUNT; i++) { 79 JCheckBoxOperator checkBox = getJCheckBoxOperator(frame, i); 80 if (i < CHECKBOX_COUNT / 2) { 81 checkBox.changeSelection(true); 82 } else { 83 checkBox.changeSelection(false); 84 } 85 } 86 System.out.println("######## Number of Items = " + listOp.getModel().getSize()); 87 assertEquals("Select All Prefixes and NO Suffixes number of items is correct", 0, listOp.getModel().getSize()); 88 89 // Check *NO* Prefix and *ALL* Suffixes Marked 90 for (int i = 0; i < CHECKBOX_COUNT; i++) { 91 JCheckBoxOperator checkBox = getJCheckBoxOperator(frame, i); 92 if (i < CHECKBOX_COUNT / 2) { 93 checkBox.changeSelection(false); 94 } else { 95 checkBox.changeSelection(true); 96 } 97 } 98 System.out.println("######## Number of Items = " + listOp.getModel().getSize()); 99 assertEquals("Select NO Prefixes and All Suffixes number of items is correct", 0, listOp.getModel().getSize()); 100 }); 101 } 102 103 private JCheckBoxOperator getJCheckBoxOperator(JFrameOperator frame, int index) { 104 105 // We map first half of indexes to the Prefixes panel and the second half 106 // to the Suffixes panel 107 String labelText; 108 int subindex; 109 if (index < CHECKBOX_COUNT / 2) { 110 labelText = "Prefixes"; 111 subindex = index; 112 } else { 113 labelText = "Suffixes"; 114 subindex = index - CHECKBOX_COUNT / 2; 115 } 116 117 return new JCheckBoxOperator(getLabeledContainerOperator(frame, labelText), subindex); 118 } 119 120} 121