testskinaggregation.java

来自「jetspeed源代码」· Java 代码 · 共 694 行 · 第 1/2 页

JAVA
694
字号
        print("PortletSet ID: " + pSet.getID());
        print("PortletSet name: " + pSet.getName());
        assertTrue(pSet.getID().equals("01"));
        assertTrue(pSet.getName().equals("theRootSet"));
        printOk();
    }

    /**
     * Checks for the physical presence of skins.
     * portlet id's within  the list should have skins
     * while those not in the list should NOT have skins.
     * A null list means that ALL skins should be unset.
     * 
     */
    protected void checkSkinPresence(Portlets portlets, List idsWithSkins)
    {

        assertNotNull(portlets);
        printOk();

        print("Verify all skins presence for this profile...");
        if (idsWithSkins == null || !idsWithSkins.contains(portlets.getId()))
        {
            print("Verify that root *DOES NOT* have a skin set...");
            assertNull(portlets.getSkin());
        }
        else
        {
            print("Verify that root *DOES* have a skin set...");
            assertNotNull(portlets.getSkin());
        }
        printOk();

        Iterator itr = portlets.getPortletsIterator();
        while (itr.hasNext())
        {
            Portlets childPortlets = (Portlets) itr.next();
            if (idsWithSkins == null || !idsWithSkins.contains(childPortlets.getId()))
            {
                print("Verify skin *IS NOT* set for Portlets " + getNameTag(childPortlets) + "...");
                assertNull(childPortlets.getSkin());
            }
            else
            {
                print("Verify skin *IS* set for Portlets " + getNameTag(childPortlets) + "...");
                assertNotNull(childPortlets.getSkin());
            }
            printOk();

            Iterator pItr = childPortlets.getEntriesIterator();
            while (pItr.hasNext())
            {
                PsmlEntry entry = (PsmlEntry) pItr.next();

                if (idsWithSkins == null || !idsWithSkins.contains(entry.getId()))
                {
                    print("Verify skin *IS NOT* set for portlet " + getNameTag(entry) + "...");
                    assertNull(entry.getSkin());
                }
                else
                {
                    print("Verify skin *IS* set for portlet " + getNameTag(entry) + "...");
                    assertNotNull(entry.getSkin());
                }
                printOk();
            }
        }
    }

    protected boolean matchesParentSkin(Portlet portlet, Portlet parent)
    {
        String parentSkin = parent.getPortletConfig().getPortletSkin().getName();
        return matchesSkin(portlet, parentSkin);
    }

    protected boolean matchesDefaultSkin(Portlet portlet)
    {
        return matchesSkin(portlet, this.defaultSkin);
    }

    protected boolean matchesSkin(Portlet portlet, String skinName)
    {
        String mySkin = portlet.getPortletConfig().getPortletSkin().getName();
        return mySkin.equals(skinName);
    }

	/**
	 * Performs skin checks for a portlet based on the MatchSettings 
	 * associated with it
	 */
    protected void performCheck(Portlet portlet, PSMLDocument doc, Portlet parent, MatchSettings settings, String linePrefix)
    {

        boolean isRoot = (parent == null);
        if (linePrefix == null)
            linePrefix = "";

        IdentityElement element = doc.getPortletsById(portlet.getID());
        if (element == null)
            element = doc.getEntryById(portlet.getID());

        print(linePrefix + "Verify a corresponding IdentitiyElement for " + getNameTag(portlet));
        assertNotNull(element);
        printOk(linePrefix);

        // automatic settings for a "virgin" skin settings
        if (settings == null)
            settings = new MatchSettings(true, true, null, false);

        if (settings.isSkinPresent())
        {
            print(linePrefix + "Verify skin *IS* set for  IdentitiyElement " + getNameTag(element) + "...");
            assertNotNull(element.getSkin());
            printOk(linePrefix);
        }
        else
        {
            print(linePrefix + "Verify skin *IS NOT* set for  IdentitiyElement " + getNameTag(element) + "...");
            Skin showSkin = element.getSkin();
            assertNull(element.getSkin());
            printOk(linePrefix);
        }

        if (!isRoot && settings.matchParentSkin())
        {
            print(linePrefix + "Verify that Portlet " + getNameTag(portlet) + "'s skin matches it's parent's, " + getNameTag(parent) + " skin...");
            assertNotNull(parent);
            matchesParentSkin(portlet, parent);
            printOk(linePrefix);
        }

        if (settings.matchDefaultSkin())
        {
            print(linePrefix + "Verify that Portlet " + getNameTag(portlet) + "'s skin  matches the default skin...");
            matchesDefaultSkin(portlet);
            printOk(linePrefix);
        }

        if (settings.getSkin() != null)
        {
            print(linePrefix + "Verify that Portlet " + getNameTag(portlet) + "'s skin  uses the skin " + settings.getSkin() + "...");
            matchesSkin(portlet, settings.getSkin());
            printOk(linePrefix);
        }

    }

    /**
    * Creates the test suite.
    *
    * @return a test suite (<code>TestSuite</code>) that includes all methods
    *         starting with "test"
    */
    public static Test suite()
    {
        // All methods starting with "test" will be executed in the test suite.
        return new TestSuite(TestSkinAggregation.class);
    }

    public static void main(String[] args)
    {
        junit.awtui.TestRunner.main(new String[] { TestSkinAggregation.class.getName()});
    }

    protected File createTestProfile(File base)
    {
        File testFile = null;
        BufferedReader reader = null;
        BufferedWriter writer = null;

        try
        {
            String testDir = base.getParent();
            String testFilePath = testDir + File.separator + "working_" + base.getName();
            testFile = new File(testFilePath);
            if (testFile.exists())
                testFile.delete();
            else
                testFile.createNewFile();

            reader = new BufferedReader(new FileReader(base));
            writer = new BufferedWriter(new FileWriter(testFile));
            String line;
            while ((line = reader.readLine()) != null)
            {
                writer.write(line);
            }
            // make sure we write the file
            writer.flush();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            testResult.addError(this, new NestableException("Unable to build workin file for skin test.", e));
        }
        finally
        {
            try
            {
                if (reader != null)
                    reader.close();

                if (writer != null)
                    writer.close();
            }
            catch (IOException e)
            {
                // let it go
            }
        }

        return testFile;

    }

    /**
     * @see junit.framework.TestCase#setUp()
     */
    protected void setUp() throws Exception
    {
        super.setUp();

        ResourceService serviceConf = ((TurbineServices) TurbineServices.getInstance()).getResources(PortalToolkitService.SERVICE_NAME);

        this.defaultSkin = serviceConf.getString("default.skin");
        String path = getTestConfig().getString(SKIN_TEST_PATH);
        String path2 = getTestConfig().getString(SKIN_TEST2_PATH);
        String path3 = getTestConfig().getString(SKIN_TEST3_PATH);
        String path4 = getTestConfig().getString(SKIN_TEST4_PATH);
        prof1 = new File(path);
        prof2 = new File(path2);
        prof3 = new File(path3);
        prof4 = new File(path4);
    }

    protected boolean usesDefaultSkin(Portlet portlet)
    {

        return portlet.getPortletConfig().getPortletSkin().getName().equals(this.defaultSkin);
    }

    protected String getNameTag(Portlet portlet)
    {
        return "Id: " + portlet.getID() + " Name: " + portlet.getName();
    }

    protected String getNameTag(IdentityElement el)
    {
        return "Id: " + el.getId() + " Name: " + el.getName();
    }

	/**
	 * Allows setting of matching criteria for individual portlet
	 * entries
	 */	
    class MatchSettings
    {
        private boolean defaultSkin;
        private boolean parentSkin;
        private String skin;
        private boolean skinPresent;

        public MatchSettings(boolean defaultSkin, boolean parentSkin, String skin, boolean skinPresent)
        {
            this.defaultSkin = defaultSkin;
            this.parentSkin = parentSkin;
            this.skin = skin;
            this.skinPresent = skinPresent;
        }

        /**
         * Returns the defaultSkin.
         * @return boolean
         */
        public boolean matchDefaultSkin()
        {
            return defaultSkin;
        }

        /**
         * Returns the parentSkin.
         * @return boolean
         */
        public boolean matchParentSkin()
        {
            return parentSkin;
        }

        /**
         * Returns the skin.
         * @return String
         */
        public String getSkin()
        {
            return skin;
        }

        /**
         * Sets the defaultSkin.
         * @param defaultSkin The defaultSkin to set
         */
        public void setDefaultSkin(boolean defaultSkin)
        {
            this.defaultSkin = defaultSkin;
        }

        /**
         * Sets the parentSkin.
         * @param parentSkin The parentSkin to set
         */
        public void setParentSkin(boolean parentSkin)
        {
            this.parentSkin = parentSkin;
        }

        /**
         * Sets the skin.
         * @param skin The skin to set
         */
        public void setSkin(String skin)
        {
            this.skin = skin;
        }
        /**
         * Returns the skinPresent.
         * @return boolean
         */
        public boolean isSkinPresent()
        {
            return skinPresent;
        }

        /**
         * Sets the skinPresent. Specifies whether or not this
         * Portlet's PsmlDocument Entry should have a skin
         * assigned to it.
         * @param skinPresent The skinPresent to set
         */
        public void setSkinPresent(boolean skinPresent)
        {
            this.skinPresent = skinPresent;
        }

    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?