01: /*
02: * This file is part of the Echo Web Application Framework (hereinafter "Echo").
03: * Copyright (C) 2002-2005 NextApp, Inc.
04: *
05: * Version: MPL 1.1/GPL 2.0/LGPL 2.1
06: *
07: * The contents of this file are subject to the Mozilla Public License Version
08: * 1.1 (the "License"); you may not use this file except in compliance with
09: * the License. You may obtain a copy of the License at
10: * http://www.mozilla.org/MPL/
11: *
12: * Software distributed under the License is distributed on an "AS IS" basis,
13: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14: * for the specific language governing rights and limitations under the
15: * License.
16: *
17: * Alternatively, the contents of this file may be used under the terms of
18: * either the GNU General Public License Version 2 or later (the "GPL"), or
19: * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
20: * in which case the provisions of the GPL or the LGPL are applicable instead
21: * of those above. If you wish to allow use of your version of this file only
22: * under the terms of either the GPL or the LGPL, and not to allow others to
23: * use your version of this file under the terms of the MPL, indicate your
24: * decision by deleting the provisions above and replace them with the notice
25: * and other provisions required by the GPL or the LGPL. If you do not delete
26: * the provisions above, a recipient may use your version of this file under
27: * the terms of any one of the MPL, the GPL or the LGPL.
28: */
29:
30: package nextapp.echo2.app.test;
31:
32: import nextapp.echo2.app.ApplicationInstance;
33: import nextapp.echo2.app.Button;
34: import nextapp.echo2.app.Color;
35: import nextapp.echo2.app.Label;
36: import nextapp.echo2.app.MutableStyle;
37: import nextapp.echo2.app.MutableStyleSheet;
38: import junit.framework.TestCase;
39:
40: /**
41: * Tests style functionality in an application.
42: */
43: public class ApplicationStyleTest extends TestCase {
44:
45: public void testApplicationStyles() {
46: ColumnApp app = new ColumnApp();
47: ApplicationInstance.setActive(app);
48:
49: app.doInit();
50: assertTrue(app.getLabel().isRegistered());
51:
52: MutableStyleSheet styleSheet = new MutableStyleSheet();
53:
54: MutableStyle alphaButtonStyle = new MutableStyle();
55: alphaButtonStyle.setProperty(Button.PROPERTY_BORDER,
56: TestConstants.BORDER_THICK_ORANGE);
57: alphaButtonStyle.setProperty(Button.PROPERTY_BACKGROUND,
58: Color.YELLOW);
59: styleSheet.addStyle(Button.class, "alpha", alphaButtonStyle);
60:
61: MutableStyle bravoButtonStyle = new MutableStyle();
62: bravoButtonStyle.setProperty(Button.PROPERTY_BORDER,
63: TestConstants.BORDER_THIN_YELLOW);
64: bravoButtonStyle.setProperty(Button.PROPERTY_BACKGROUND,
65: Color.GREEN);
66: styleSheet.addStyle(Button.class, "bravo", bravoButtonStyle);
67:
68: MutableStyle bravoLabelStyle = new MutableStyle();
69: bravoLabelStyle.setProperty(Label.PROPERTY_FOREGROUND,
70: Color.RED);
71: styleSheet.addStyle(Label.class, "bravo", bravoLabelStyle);
72:
73: app.setStyleSheet(styleSheet);
74:
75: assertNull(app.getLabel().getRenderProperty(
76: Label.PROPERTY_FOREGROUND));
77: app.getLabel().setStyleName("charlie");
78: assertNull(app.getLabel().getRenderProperty(
79: Label.PROPERTY_FOREGROUND));
80: app.getLabel().setStyleName("bravo");
81: assertEquals(Color.RED, app.getLabel().getRenderProperty(
82: Label.PROPERTY_FOREGROUND));
83:
84: assertNull(app.getColumn().getRenderProperty(
85: Label.PROPERTY_FOREGROUND));
86: app.getColumn().setStyleName("bravo");
87: assertNull(app.getColumn().getRenderProperty(
88: Label.PROPERTY_FOREGROUND));
89:
90: assertEquals(Color.RED, app.getLabel().getRenderProperty(
91: Label.PROPERTY_FOREGROUND));
92: app.setStyleSheet(null);
93: assertNull(app.getLabel().getRenderProperty(
94: Label.PROPERTY_FOREGROUND));
95:
96: ApplicationInstance.setActive(null);
97: }
98: }
|