Path: blob/master/test/jdk/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java
41152 views
/*1* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/*24@test %I% %E%25@key headful26@bug 631571727@summary verifies that modifiers are correct for standard (1, 2, 3, wheel) mouse buttons28@author Andrei Dmitriev : area=awt.mouse29@run main MouseModifiersUnitTest_Standard30*/3132import java.awt.*;33import java.awt.event.*;34import java.util.HashMap;35import java.util.StringTokenizer;36import java.util.Vector;3738//the test verifies:39// 1) verifies that modifiers are correct for standard (1, 2, 3) mouse buttons40// TODO: 2) verifies that modifiers are correct for wheel41// TODO: 3)42// Case1. the test posts BUTTONx_MASK and verifies that paramString() contains correct modifiers and exModifiers43// Case2. the test posts BUTTONx_DOWN_MASK and verifies that paramString() contains correct modifiers and exModifiers44// Case3. the test posts getMaskForButton(n) and verifies that paramString() contains correct modifiers and exModifiers45// repeat all cases with SHIFT/ALT/CTRL modifiers verify that paramString() contains correct modifiers and exModifiers46// I'm verifying button, modifiers and extModifiers for now.4748public class MouseModifiersUnitTest_Standard {49static final int NONE = 0;50static final int SHIFT = 1;51static final int CTRL = 2;52static final int ALT = 3;53static boolean debug = true; //dump all errors (debug) or throw first(under jtreg) exception54static boolean autorun = false; //use robot or manual run55static int testModifier = NONE;56// static String testModifier = "NONE";57static CheckingModifierAdapter adapterTest1;58static CheckingModifierAdapter adapterTest2;59static CheckingModifierAdapter adapterTest3;60static CheckingModifierAdapter adapterTest4;61static Frame f;62final static int [] mouseButtons = new int [] {MouseEvent.BUTTON1_MASK, MouseEvent.BUTTON2_MASK, MouseEvent.BUTTON3_MASK};63// BUTTON1, 2, 3 press-release.64final static int [] modifiersStandardTestNONE = new int[] {MouseEvent.BUTTON1_MASK, MouseEvent.BUTTON1_MASK, MouseEvent.BUTTON1_MASK,65MouseEvent.BUTTON2_MASK, MouseEvent.BUTTON2_MASK, MouseEvent.BUTTON2_MASK,66MouseEvent.BUTTON3_MASK, MouseEvent.BUTTON3_MASK, MouseEvent.BUTTON3_MASK };67final static int [] modifiersExStandardTestNONE = new int[] {MouseEvent.BUTTON1_DOWN_MASK, 0, 0,68MouseEvent.BUTTON2_DOWN_MASK, 0, 0,69MouseEvent.BUTTON3_DOWN_MASK, 0, 0};70// BUTTON1, 2, 3 press-release with shift modifier71final static int [] modifiersStandardTestSHIFT = new int[] {MouseEvent.BUTTON1_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.SHIFT_MASK,72MouseEvent.BUTTON2_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.SHIFT_MASK,73MouseEvent.BUTTON3_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.SHIFT_MASK };74final static int [] modifiersExStandardTestSHIFT = new int[] {MouseEvent.BUTTON1_DOWN_MASK|InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK,75MouseEvent.BUTTON2_DOWN_MASK|InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK,76MouseEvent.BUTTON3_DOWN_MASK|InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK};77// BUTTON1, 2, 3 press-release with CTRL modifier78final static int [] modifiersStandardTestCTRL = new int[] {MouseEvent.BUTTON1_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON1_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON1_MASK|InputEvent.CTRL_MASK,79MouseEvent.BUTTON2_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON2_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON2_MASK|InputEvent.CTRL_MASK,80MouseEvent.BUTTON3_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON3_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON3_MASK|InputEvent.CTRL_MASK };81final static int [] modifiersExStandardTestCTRL = new int[] {MouseEvent.BUTTON1_DOWN_MASK|InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK,82MouseEvent.BUTTON2_DOWN_MASK|InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK,83MouseEvent.BUTTON3_DOWN_MASK|InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK};8485// BUTTON1, 2, 3 press-release with ALT modifier86final static int [] modifiersStandardTestALT = new int[] {MouseEvent.BUTTON1_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.ALT_MASK,87MouseEvent.BUTTON2_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.ALT_MASK,88MouseEvent.BUTTON3_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.ALT_MASK };89final static int [] modifiersExStandardTestALT = new int[] {MouseEvent.BUTTON1_DOWN_MASK|InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK,90MouseEvent.BUTTON2_DOWN_MASK|InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK,91MouseEvent.BUTTON3_DOWN_MASK|InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK};9293static Robot robot;9495public static void main(String s[]){96initParams(s);97initAdapters();98f = new Frame();99final int [] modifiers = {InputEvent.SHIFT_MASK, InputEvent.CTRL_MASK};100final String [] modifierNames = {"InputEvent.SHIFT_MASK", "InputEvent.CTRL_MASK"};101f.setLayout(new FlowLayout());102f.addMouseWheelListener(new MouseWheelListener() {103public void mouseWheelMoved(MouseWheelEvent e) {104System.out.println("WHEEL "+e);105}106});107f.setSize(300, 300);108f.setVisible(true);109110try {111robot = new Robot();112robot.delay(500);113robot.mouseMove(f.getLocationOnScreen().x + f.getWidth()/2, f.getLocationOnScreen().y + f.getHeight()/2);114if (autorun) {115//testing buttons 1, 2, 3 only116testPlainButtons();117robot.delay(500);118119//testing buttons 1, 2, 3 with SHIFT, CTRL, ALT keyboard modifiers120testButtonsWithShift();121robot.delay(500);122123testButtonsWithControl();124robot.delay(500);125126testButtonsWithAlt();127robot.delay(500);128} else {129switch (testModifier){130case SHIFT:131f.addMouseListener(adapterTest2);132break;133case CTRL:134f.addMouseListener(adapterTest3);135break;136case ALT:137f.addMouseListener(adapterTest4);138break;139default: //NONE inclusive140f.addMouseListener(adapterTest1);141}142}143} catch (Exception e){144throw new RuntimeException("Test failed.");145}146147}148149public static void initAdapters(){150adapterTest1 = new CheckingModifierAdapter(NONE);151adapterTest2 = new CheckingModifierAdapter(SHIFT);152adapterTest3 = new CheckingModifierAdapter(CTRL);153adapterTest4 = new CheckingModifierAdapter(ALT);154}155156/*======================================================================*/157public static void checkPressedModifiersTest(int testModifier, MouseEvent event){158int [] curStandardModifiers = getStandardArray(testModifier);159int [] curStandardExModifiers = getStandardExArray(testModifier);160int button = event.getButton();161int modifiers = event.getModifiers();162int modifiersEx = event.getModifiersEx();163int index = (button - 1)*3;164// int index = (button - 4)*3;165dumpValues(button, modifiers, curStandardModifiers[index], modifiersEx, curStandardExModifiers[index]);166if (modifiers != curStandardModifiers[index]){167if (debug){168System.out.println("Test failed : Pressed. modifiers != modifiersStandard");169} else {170throw new RuntimeException("Test failed : Pressed. modifiers != modifiersStandard");171}172}173174if (modifiersEx != curStandardExModifiers[index]){175// System.out.println(">>>>>>>>>>>>>>> Pressed. modifiersEx "+modifiersEx +" : "+!= curStandardExModifiers");176if (debug){177System.out.println("Test failed : Pressed. modifiersEx != curStandardExModifiers");178} else {179throw new RuntimeException("Test failed : Pressed. modifiersEx != curStandardExModifiers");180}181}182HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());183System.out.println(event.paramString());184checkButton(paramStringElements, button);185checkModifiers(testModifier, paramStringElements, button);186checkExtModifiersOnPress(testModifier, paramStringElements, button);187}188189public static void checkButton(HashMap<String, String> h, int button){190if (h.get("button") == null) {191throw new RuntimeException("Test failed : Clicked. button is absent in paramString()");192}193if (Integer.parseInt(h.get("button")) != button) {194throw new RuntimeException("Test failed : Clicked. button in paramString() doesn't equal to button being pressed.");195}196}197198public static void checkExtModifiersOnPress(int testModifier, HashMap h, int button){199String ethalon = "";200if (h.get("extModifiers") == null) {201System.out.println("Test failed : Pressed. extModifiers == null");202throw new RuntimeException("Test failed : Pressed. extModifiers == null");203}204switch (testModifier){205case SHIFT:{206ethalon = "Shift+";207break;208}209case ALT:{210ethalon = "Alt+";211break;212}213case CTRL:{214ethalon = "Ctrl+";215break;216}217default: {218ethalon = "";219}220ethalon = ethalon + "Button" +button;221222if (!h.get("extModifiers").equals(ethalon)) {223System.out.println("Test failed : Pressed. extModifiers = " +h.get("extModifiers")+" instead of : "+ethalon);224throw new RuntimeException("Test failed : Pressed. extModifiers = " +h.get("extModifiers")+" instead of : "+ethalon);225}226}227}228229230231public static void checkModifiers(int testModifier, HashMap<String, String> h, int button){232// none of modifiers should be null233if (h.get("modifiers") == null) {234System.out.println("Test failed : modifiers == null");235throw new RuntimeException("Test failed : modifiers == null");236}237Vector <String> modifierElements = tokenizeModifiers(h.get("modifiers"));238//check that ButtonX is there239String buttonEthalon = "Button" + button;240if (modifierElements.contains(buttonEthalon)){241modifierElements.remove(buttonEthalon);242} else {243System.out.println("Test failed : modifiers doesn't contain Button "+h.get("modifiers"));244throw new RuntimeException("Test failed : modifiers doesn't contain Button "+h.get("modifiers"));245}246247248//Check all explicitly pressed modifires249// boolean altIncluded = false; //don't duplicate Alt when ALT is pressed and BUTTON2_MASK.250String excplicitModifier = "";251boolean altIncluded = false;252switch (testModifier){253case SHIFT:{254excplicitModifier = "Shift";255break;256}257case ALT:{258excplicitModifier = "Alt";259altIncluded = true; //there should be only on "Alt" for two modifiers. So check it.260break;261}262case CTRL:{263excplicitModifier = "Ctrl";264break;265}266}267if (!excplicitModifier.equals("")){268if (modifierElements.contains(excplicitModifier)){269modifierElements.remove(excplicitModifier);270} else {271System.out.println("Test failed : modifiers doesn't contain explicit modifier "+excplicitModifier + " in "+ h.get("modifiers"));272throw new RuntimeException("Test failed : modifiers doesn't contain explicit modifier "+excplicitModifier + " in "+ h.get("modifiers"));273}274}275276//Button 2 and 3 reports about Alt+Button2 and Meta+Button3 respectively.277//Check these values too278String extraModifiers = "";279String extraModifiersButton3 = "";280switch (button){281//BUTTON1 with ALT reports about Alt+Button1+Button2.282//We should fix this but I would not change this.283case 1: {284//Alt+Button1+Button2:285// 1) we already handled "Alt" in excplicitModifier286// 2) we already took "Button1" in buttonEthalon287// 3) so "Button2" is only remained.288// This should only happen when ALT+Button1 is pressed289if (altIncluded){290extraModifiers = "Button2";291}292break;293}294case 2: {295//Alt+Button2 report about "Alt+Button2".296extraModifiers = "Alt";297break;298}299case 3: {300//ALT+BUTTON3 reports about "Alt+Meta+Button2+Button3"301// This should only happen when ALT+Button3 is pressed302extraModifiers = "Meta";303if (altIncluded){304extraModifiersButton3 = "Button2";305}306break;307}308}//switch309310if (!extraModifiers.equals("")){311if (modifierElements.contains(extraModifiers)){312modifierElements.remove(extraModifiers);313} else {314//we may already removed "Alt" when filtered explicit modifiers.315//Here is no failure in this case.316if (!altIncluded) {317System.out.println("Test failed : modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiers + " in "+ h.get("modifiers"));318throw new RuntimeException("Test failed : modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiers + " in "+ h.get("modifiers"));319}320}321}322323if (!extraModifiersButton3.equals("")){324if (modifierElements.contains(extraModifiersButton3)){325modifierElements.remove(extraModifiersButton3);326} else {327System.out.println("Test failed : modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiersButton3 + " in "+ h.get("modifiers"));328throw new RuntimeException("Test failed : modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiersButton3 + " in "+ h.get("modifiers"));329}330}331332//the length of vector should now be zero333if (!modifierElements.isEmpty()){334System.out.println("Test failed : there is some more elements in modifiers that shouldn't be there: "+h.get("modifiers"));335throw new RuntimeException("Test failed : there is some more elements in modifiers that shouldn't be there: "+h.get("modifiers"));336}337}338339public static void checkExtModifiersOnReleaseClick(int testModifier, HashMap h, int button){340String ethalon = "";341switch (testModifier){342case SHIFT:{343ethalon = "Shift+";344break;345}346case ALT:{347ethalon = "Alt+";348break;349}350case CTRL:{351ethalon = "Ctrl+";352break;353}354default: {355if (h.get("extModifiers") != null) {356System.out.println("Test failed : Released. extModifiers != null but no modifiers keys are pressed");357throw new RuntimeException("Test failed : Released. extModifiers != null but no modifiers keys are pressed");358} else {359//no modifiers360return;361}362}363}364if (h.get("extModifiers").equals(ethalon)) {365System.out.println("Test failed : Released. extModifiers = "+ h.get("extModifiers") +" instead of : "+ethalon);366throw new RuntimeException("Test failed : Released. extModifiers = "+ h.get("extModifiers") +" instead of : "+ethalon);367}368}369370public static void checkReleasedModifiersTest(int testModifier, MouseEvent event){371int [] curStandardModifiers = getStandardArray(testModifier);372int [] curStandardExModifiers = getStandardExArray(testModifier);373// int index = (button - 4)*3 + 1;374int button = event.getButton();375int modifiers = event.getModifiers();376int modifiersEx = event.getModifiersEx();377int index = (button - 1)*3 + 1;378dumpValues(button, modifiers, curStandardModifiers[index], modifiersEx, curStandardExModifiers[index]);379if (modifiers != curStandardModifiers[index]){380if (debug){381System.out.println("Test failed : Released. modifiers != modifiersStandard");382} else {383throw new RuntimeException("Test failed : Released. modifiers != modifiersStandard");384}385}386if (modifiersEx != curStandardExModifiers[index]){387if (debug){388System.out.println("Test failed : Released. modifiersEx != curStandardExModifiers");389} else {390throw new RuntimeException("Test failed : Released. modifiersEx != curStandardExModifiers");391}392}393HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());394System.out.println(event.paramString());395checkButton(paramStringElements, button);396checkModifiers(testModifier, paramStringElements, button);397checkExtModifiersOnReleaseClick(testModifier, paramStringElements, button);398}399400public static void checkClickedModifiersTest(int testModifier, MouseEvent event){401int [] curStandardModifiers = getStandardArray(testModifier);402int [] curStandardExModifiers = getStandardExArray(testModifier);403// int index = (button - 4)*3 + 2;404int button = event.getButton();405int modifiers = event.getModifiers();406int modifiersEx = event.getModifiersEx();407int index = (button - 1)*3 + 2;408dumpValues(button, modifiers, curStandardModifiers[index], modifiersEx, curStandardExModifiers[index]);409if (modifiers != curStandardModifiers[index]){410if (debug){411System.out.println("Test failed : Clicked. modifiers != modifiersStandard");412} else {413throw new RuntimeException("Test failed : Clicked. modifiers != modifiersStandard");414}415}416if (modifiersEx != curStandardExModifiers[index]){417if (debug){418System.out.println("Test failed : Clicked. modifiersEx != curStandardExModifiers");419} else {420throw new RuntimeException("Test failed : Clicked. modifiersEx != curStandardExModifiers");421}422}423HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());424checkButton(paramStringElements, button);425checkModifiers(testModifier, paramStringElements, button);426checkExtModifiersOnReleaseClick(testModifier, paramStringElements, button);427}428/*======================================================================*/429430public static HashMap<String, String> tokenizeParamString(String param){431HashMap <String, String> params = new HashMap<String, String>();432StringTokenizer st = new StringTokenizer(param, ",=");433while (st.hasMoreTokens()){434String tmp = st.nextToken();435// System.out.println("PARSER : "+tmp);436if (tmp.equals("button") ||437tmp.equals("modifiers") ||438tmp.equals("extModifiers")) {439params.put(tmp, st.nextToken());440}441}442return params;443}444445public static Vector<String> tokenizeModifiers(String modifierList){446Vector<String> modifiers = new Vector<String>();447StringTokenizer st = new StringTokenizer(modifierList, "+");448while (st.hasMoreTokens()){449String tmp = st.nextToken();450modifiers.addElement(tmp);451System.out.println("MODIFIER PARSER : "+tmp);452}453return modifiers;454}455456457//test BUTTON1, 2 and 3 without any modifiers keys458public static void testPlainButtons(){459System.out.println("Testing buttons without modifiers.");460f.addMouseListener(adapterTest1);461for (int button : mouseButtons){462robot.mousePress(button);463robot.delay(100);464robot.mouseRelease(button);465}466robot.delay(1000);467f.removeMouseListener(adapterTest1);468}469470//test BUTTON1, 2 and 3 with SHIFT key471public static void testButtonsWithShift(){472System.out.println("Testing buttons with SHIFT modifier.");473f.addMouseListener(adapterTest2);474475for (int button : mouseButtons){476robot.keyPress(KeyEvent.VK_SHIFT);477robot.mousePress(button);478robot.delay(100);479robot.mouseRelease(button);480robot.keyRelease(KeyEvent.VK_SHIFT);481}482robot.delay(1000);483f.removeMouseListener(adapterTest2);484}485486//test BUTTON1, 2 and 3 with CTRL key487public static void testButtonsWithControl(){488System.out.println("Testing buttons with CONTROL modifier.");489f.addMouseListener(adapterTest3);490for (int button : mouseButtons){491robot.keyPress(KeyEvent.VK_CONTROL);492robot.mousePress(button);493robot.delay(100);494robot.mouseRelease(button);495robot.keyRelease(KeyEvent.VK_CONTROL);496}497robot.delay(1000);498f.removeMouseListener(adapterTest3);499}500501//test BUTTON1, 2 and 3 with ALT key502public static void testButtonsWithAlt(){503System.out.println("Testing buttons with ALT modifier.");504f.addMouseListener(adapterTest4);505for (int button : mouseButtons){506robot.keyPress(KeyEvent.VK_ALT);507robot.mousePress(button);508robot.delay(100);509robot.mouseRelease(button);510robot.keyRelease(KeyEvent.VK_ALT);511}512robot.delay(1000);513f.removeMouseListener(adapterTest4);514}515516public static void initParams(String []s){517if (s.length != 3){518autorun = true;519debug = false;520testModifier = NONE;521} else {522autorun = Boolean.valueOf(s[0]);523debug = Boolean.valueOf(s[1]);524525if (s[2].equals("NONE")){526testModifier = NONE;527}528if (s[2].equals("SHIFT")){529testModifier = SHIFT;530}531if (s[2].equals("CTRL")){532testModifier = CTRL;533}534if (s[2].equals("ALT")){535testModifier = ALT;536}537}538System.out.println("Autorun : " +autorun);539System.out.println("Debug mode : " +debug);540System.out.println("Modifier to verify : " + testModifier);541}542543public static void dumpValues(int button, int modifiers, int modifiersStandard, int modifiersEx, int modifiersExStandard){544System.out.println("Button = "+button + "Modifiers = "+ modifiers + " standard = "+ modifiersStandard);545System.out.println(" ModifiersEx = "+ modifiersEx + " standardEx = "+ modifiersExStandard);546}547548private static int[] getStandardExArray(int testModifier) {549int [] curStandardExModifiers;550switch (testModifier){551case SHIFT:552curStandardExModifiers = modifiersExStandardTestSHIFT;553break;554case CTRL:555curStandardExModifiers = modifiersExStandardTestCTRL;556break;557case ALT:558curStandardExModifiers = modifiersExStandardTestALT;559break;560default: //NONE by default561curStandardExModifiers = modifiersExStandardTestNONE;562}563return curStandardExModifiers;564}565566private static int[] getStandardArray(int testModifier) {567int [] curStandardModifiers;568switch (testModifier){569case SHIFT:570curStandardModifiers = modifiersStandardTestSHIFT;571break;572case CTRL:573curStandardModifiers = modifiersStandardTestCTRL;574break;575case ALT:576curStandardModifiers = modifiersStandardTestALT;577break;578default: //NONE by default579curStandardModifiers = modifiersStandardTestNONE;580}581return curStandardModifiers;582}583584}585586587/* A class that invoke appropriate verification588* routine with current modifier.589*/590class CheckingModifierAdapter extends MouseAdapter{591int modifier;592public CheckingModifierAdapter(int modifier){593this.modifier = modifier;594}595596public void mousePressed(MouseEvent e) {597System.out.println("PRESSED "+e);598if (e.getButton() > MouseEvent.BUTTON3) {599System.out.println("Extra button affected. Skip.");600} else {601MouseModifiersUnitTest_Standard.checkPressedModifiersTest(modifier, e); // e.getButton(), e.getModifiers(), e.getModifiersEx(),602}603}604public void mouseReleased(MouseEvent e) {605System.out.println("RELEASED "+e);606if (e.getButton() > MouseEvent.BUTTON3) {607System.out.println("Extra button affected. Skip.");608} else {609MouseModifiersUnitTest_Standard.checkReleasedModifiersTest(modifier, e); // e.getButton(), e.getModifiers(), e.getModifiersEx()610}611}612public void mouseClicked(MouseEvent e) {613System.out.println("CLICKED "+e);614if (e.getButton() > MouseEvent.BUTTON3) {615System.out.println("Extra button affected. Skip.");616} else {617MouseModifiersUnitTest_Standard.checkClickedModifiersTest(modifier, e); //e.getButton(), e.getModifiers(), e.getModifiersEx()618}619}620}621622623624