testcommandsorting.java
来自「This is a resource based on j2me embedde」· Java 代码 · 共 284 行
JAVA
284 行
/* * * * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */package javax.microedition.lcdui;import com.sun.midp.chameleon.*;import com.sun.midp.chameleon.layers.*;import com.sun.midp.i3test.TestCase;import com.sun.midp.util.LcduiTestCanvas;import com.sun.midp.util.LcduiTestMIDlet;/** * This test case does extensive testing on command sorting in chameleon. * It validates the rules specified in the spec for sorting commands * in a particular order along with taking their priorities into * consideration. For example, it tests the decision on what goes into the * left soft button and what goes into the right soft button as the system * menu list of commands. */public class TestCommandSorting extends TestCase { /** Name of the test */ static final String testName = "CommandSorting"; /** The Display to use to view our test canvases */ protected Display display; /** Reference to MIDPWindow, to help us gain access into * SoftButtonLayer's attributes used in this test. */ protected MIDPWindow window; /** * Simple constructor. */ public TestCommandSorting() { } /** * Utility method that checks that the left soft button is indeed the * intended one as passed in via parameter cmd, after making the canvas * current. * * @param canvas the canvas being used to test the commands * @param cmd the command under test */ protected void checkLeftBtn(LcduiTestCanvas canvas, Command cmd) { display.setCurrent(canvas); if (!canvas.awaitPaint()) { fail("test canvas not visible"); return; } assertSame("Checking left button:", cmd, window.getSoftOne()); } /** * This test is for a canvas with just the STOP command added. The STOP * command should be the left soft button. (only negative commands are * being tested) */ protected void testOne() { declare(testName + " 1: STOP command added to the screen."); LcduiTestCanvas canvas = new LcduiTestCanvas(); Command stopCmd = new Command("Stop", Command.STOP, 0); canvas.addCommand(stopCmd); checkLeftBtn(canvas, stopCmd); } /** * This test is for a canvas with the CANCEL & STOP commands added. The * CANCEL command should be the left soft button. (only negative * commands are being tested) */ protected void testTwo() { declare(testName + " 2: CANCEL & STOP commands added to the screen."); LcduiTestCanvas canvas = new LcduiTestCanvas(); Command cancelCmd = new Command("Cancel", Command.CANCEL, 0); Command stopCmd = new Command("Stop", Command.STOP, 0); // we add the commands in reverse order so that we are // sure the button layer is sorting it correctly canvas.addCommand(stopCmd); canvas.addCommand(cancelCmd); checkLeftBtn(canvas, cancelCmd); } /** * This test is for a canvas with the EXIT, CANCEL & STOP commands added. * The EXIT command should be the left soft button. (only negative * commands are being tested) */ protected void testThree() { declare(testName+" 3: EXIT, CANCEL & STOP commands added to the screen."); LcduiTestCanvas canvas = new LcduiTestCanvas(); Command exitCmd = new Command("Exit", Command.EXIT, 0); Command cancelCmd = new Command("Cancel", Command.CANCEL, 0); Command stopCmd = new Command("Stop", Command.STOP, 0); // we add the commands in reverse order so that we are // sure the button layer is sorting it correctly canvas.addCommand(stopCmd); canvas.addCommand(cancelCmd); canvas.addCommand(exitCmd); checkLeftBtn(canvas, exitCmd); } /** * This test is for a canvas with the BACK, EXIT, CANCEL & STOP * commands added. The BACK command should be the left soft button. * (only negative commands are being tested) */ protected void testFour() { declare(testName+" 4: BACK, EXIT, CANCEL & STOP commands added to the screen."); LcduiTestCanvas canvas = new LcduiTestCanvas(); Command backCmd = new Command("Back", Command.BACK, 0); Command exitCmd = new Command("Exit", Command.EXIT, 0); Command cancelCmd = new Command("Cancel", Command.CANCEL, 0); Command stopCmd = new Command("Stop", Command.STOP, 0); // we add the commands in reverse order so that we are // sure the button layer is sorting it correctly canvas.addCommand(stopCmd); canvas.addCommand(cancelCmd); canvas.addCommand(exitCmd); canvas.addCommand(backCmd); checkLeftBtn(canvas, backCmd); } /** * This test is for a canvas with the BACK, STOP, CANCEL, EXIT, HELP, * OK, SCREEN & ITEM commands added. The BACK command should be the * left soft button. And all the other commands should be sorted * correctly as defined in the spec on the right soft button as the * system menu. (combination of positive & negative commands are * being tested) */ protected void testFive() { declare(testName + " 5: BACK, STOP, CANCEL, EXIT, HELP, OK, SCREEN & ITEM commands added to the screen."); LcduiTestCanvas canvas = new LcduiTestCanvas(); // we add the commands in reverse order so that we are // sure the button layer is sorting it correctly for (int i = 0; i < 2; i++) { canvas.addCommand(new Command("STOP" + i, Command.STOP, i)); canvas.addCommand(new Command("CANCEL" + i, Command.CANCEL, i)); canvas.addCommand(new Command("EXIT" + i, Command.EXIT, i)); canvas.addCommand(new Command("HELP" + i, Command.HELP, i)); canvas.addCommand(new Command("OK" + i, Command.OK, i)); canvas.addCommand(new Command("SCREEN" + i, Command.SCREEN, i)); canvas.addCommand(new Command("ITEM" + i, Command.ITEM, i)); } Command backCmd = new Command("Back", Command.BACK, 0); canvas.addCommand(backCmd); checkLeftBtn(canvas, backCmd); Command[] cmds = window.getSoftTwo(); assertTrue("ITEM", cmds[0].getCommandType() == Command.ITEM); assertTrue("ITEM", cmds[1].getCommandType() == Command.ITEM); assertTrue("ITEM PRIORITY", cmds[0].getPriority() < cmds[1].getPriority()); assertTrue("SCREEN", cmds[2].getCommandType() == Command.SCREEN); assertTrue("SCREEN", cmds[3].getCommandType() == Command.SCREEN); assertTrue("SCREEN PRIORITY", cmds[2].getPriority() < cmds[3].getPriority()); assertTrue("OK", cmds[4].getCommandType() == Command.OK); assertTrue("OK", cmds[5].getCommandType() == Command.OK); assertTrue("OK PRIORITY", cmds[4].getPriority() < cmds[5].getPriority()); assertTrue("EXIT, ", cmds[6].getCommandType() == Command.EXIT); assertTrue("EXIT, ", cmds[7].getCommandType() == Command.EXIT); assertTrue("EXIT PRIORITY, ", cmds[6].getPriority() < cmds[7].getPriority()); assertTrue("CANCEL, ", cmds[8].getCommandType() == Command.CANCEL); assertTrue("CANCEL, ", cmds[9].getCommandType() == Command.CANCEL); assertTrue("CANCEL PRIORITY, ", cmds[8].getPriority() < cmds[9].getPriority()); assertTrue("STOP, ", cmds[10].getCommandType() == Command.STOP); assertTrue("STOP, ", cmds[11].getCommandType() == Command.STOP); assertTrue("STOP PRIORITY, ", cmds[10].getPriority() < cmds[11].getPriority()); assertTrue("HELP, ", cmds[12].getCommandType() == Command.HELP); assertTrue("HELP, ", cmds[13].getCommandType() == Command.HELP); assertTrue("HELP PRIORITY, ", cmds[12].getPriority() < cmds[13].getPriority()); } /** * This test is for a canvas with the HELP, OK, SCREEN & ITEM * commands added, without any negative commands and check to see * if the left soft button is mapped to the highest positive * command as expected. All the remaining positive * commands should be sorted correctly as defined in the spec on * the right soft button as the system menu. (only positive commands are * being tested) */ protected void testSix() { declare(testName + " 6: HELP, OK, SCREEN & ITEM commands added to the screen."); LcduiTestCanvas canvas = new LcduiTestCanvas(); Command helpCmd = new Command("HELP", Command.HELP, 0); Command okCmd = new Command("OK", Command.OK, 1); Command screenCmd = new Command("SCREEN", Command.SCREEN, 2); Command itemCmd = new Command("ITEM", Command.ITEM, 3); canvas.addCommand(helpCmd); canvas.addCommand(okCmd); canvas.addCommand(screenCmd); canvas.addCommand(itemCmd); checkLeftBtn(canvas, itemCmd); // ITEM command has highest priority } /** * Overridden from TestCase parent. This method will kick off each * individual test */ public void runTests() throws Throwable { if (!LcduiTestMIDlet.invoke()) { throw new RuntimeException("can't start LcduiTestMIDlet"); } try { display = LcduiTestMIDlet.getDisplay(); window = display.getWindow(); testOne(); testTwo(); testThree(); testFour(); testFive(); testSix(); } finally { LcduiTestMIDlet.cleanup(); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?