| /******************************************************************************* |
| * Copyright (c) 2012 VMware Inc. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * VMware Inc. - initial contribution |
| *******************************************************************************/ |
| |
| package org.eclipse.virgo.management.console.stubs.types; |
| |
| import static org.junit.Assert.assertEquals; |
| |
| import java.util.ArrayList; |
| import java.util.HashMap; |
| import java.util.List; |
| import java.util.Map; |
| |
| import org.eclipse.virgo.management.console.stubs.objects.Util; |
| |
| import org.mozilla.javascript.Context; |
| import org.mozilla.javascript.Function; |
| import org.mozilla.javascript.ScriptableObject; |
| |
| /** |
| */ |
| public class Element extends ParentStub { |
| |
| private static final long serialVersionUID = 1L; |
| |
| private static List<String> CONSTRUCTOR_ARGUMENT_TRACE = new ArrayList<String>(); |
| |
| private static Element LAST_REPLACEMENT; |
| |
| private static Element LAST_APPENDED; |
| |
| private static Function READY; |
| |
| private final String constructorArgument; |
| |
| private List<String> CLASSES = new ArrayList<String>(); |
| |
| private Map<String, String> CSS = new HashMap<String, String>(); |
| |
| private boolean isSubmitted; |
| |
| private static int CLICK_COUNT = 0; |
| |
| private Element contentDocument; |
| |
| /** |
| * Prototype constructor |
| */ |
| public Element() { |
| this.constructorArgument = null; |
| } |
| |
| /** |
| * JavaScript Constructor |
| */ |
| public Element(ScriptableObject constructorArgument) { |
| this.constructorArgument = ((String) Context.jsToJava(constructorArgument, String.class)); |
| CONSTRUCTOR_ARGUMENT_TRACE.add(this.constructorArgument); |
| } |
| |
| public void jsFunction_empty(){ |
| } |
| |
| public void jsFunction_ready(Function readyFunction){ |
| READY = readyFunction; |
| } |
| |
| public ScriptableObject jsFunction_replaceWith(Element replacement){ |
| LAST_REPLACEMENT = replacement; |
| return this; |
| } |
| |
| public ScriptableObject jsFunction_append(Element toAppend){ |
| LAST_APPENDED = toAppend; |
| return this; |
| } |
| |
| public ScriptableObject jsFunction_addClass(String newClass){ |
| CLASSES.add(newClass); |
| return this; |
| } |
| |
| public boolean jsFunction_hasClass(String className){ |
| return CLASSES.contains(className); |
| } |
| |
| public ScriptableObject jsFunction_removeClass(String className) { |
| CLASSES.remove(className); |
| return this; |
| } |
| |
| public ScriptableObject jsFunction_text(String text) { |
| return this; |
| } |
| |
| public void jsFunction_attr(String attr) { |
| } |
| |
| public void jsFunction_prop(String prop){ |
| } |
| |
| public void jsFunction_data(String name, String value){ |
| } |
| |
| public void jsFunction_click() { |
| CLICK_COUNT++; |
| } |
| |
| public void jsFunction_load() { |
| } |
| |
| public void jsFunction_submit() { |
| this.isSubmitted = true; |
| } |
| |
| public ScriptableObject jsFunction_children(String filter) { |
| return this; |
| } |
| |
| public ScriptableObject jsFunction_css(String key, String value) { |
| CSS.put(key, value); |
| return this; |
| } |
| |
| public void jsFunction_slideToggle(int time){ |
| assertEquals(Util.fxTime, time); |
| } |
| |
| public Element jsFunction_contentDocument(){ |
| return this.contentDocument; |
| } |
| |
| // Test helper methods |
| |
| public static Function getReadyFunction(){ |
| return READY; |
| } |
| |
| public List<String> getClasses(){ |
| return CLASSES; |
| } |
| |
| public static List<String> getConstructorArgumentTrace() { |
| return CONSTRUCTOR_ARGUMENT_TRACE; |
| } |
| |
| public static Element getLastReplacement() { |
| return LAST_REPLACEMENT; |
| } |
| |
| public static Element getLastAppended() { |
| return LAST_APPENDED; |
| } |
| |
| public String getConstructorArgument() { |
| return this.constructorArgument; |
| } |
| |
| public boolean isSubmitted() { |
| return this.isSubmitted; |
| } |
| |
| public static int isClicked() { |
| return CLICK_COUNT; |
| } |
| |
| public static void resetClicked() { |
| CLICK_COUNT = 0; |
| } |
| |
| public void setContentDocument(Element contentDocument){ |
| this.contentDocument = contentDocument; |
| } |
| |
| } |