Package com.granule.tag.utils

Source Code of com.granule.tag.utils.ClosureCalcDepsTest

/*
* Copyright 2010 Granule Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.granule.tag.utils;

import com.granule.ExternalFragment;
import com.granule.FragmentDescriptor;
import com.granule.InternalFragment;
import com.granule.SimpleRequestProxy;
import com.granule.calcdeps.CalcDeps;
import junit.framework.TestCase;

import java.util.ArrayList;
import java.util.List;

/**
* User: Dario Wunsch Date: 20.07.2010 Time: 2:51:42
*/
public class ClosureCalcDepsTest extends TestCase {
    public void testBasic() {
        String testCode = "goog.require('goog.dom');\n" + "goog.require('goog.date');\n//goog.require('goog.fx.DragListGroup');\n"
                + "goog.require('goog.i18n.DateTimeSymbols');\n" + "goog.require('goog.ui.DatePicker');\n<%--goog.require('goog.fx.DragListGroup');\n--%>"
                + "        var dp = new goog.ui.DatePicker();\n"
                + "        dp.render(document.getElementById('widget_dp'));\n" + "\n"
                + "        goog.events.listen(dp, goog.ui.DatePicker.Events.CHANGE,\n"
                + "                function(event)\n" + "                {\n"
                + "                    goog.dom.setTextContent(document.getElementById('label_dp'), event.date ?\n"
                + "                            event.date.toIsoString(true) : 'none');\n" + "                });\n"
                + "\n" + "        goog.dom.setTextContent(document.getElementById('label_dp'),\n"
                + "                dp.getDate().toIsoString(true));";
        List<FragmentDescriptor> fragments = new ArrayList<FragmentDescriptor>();
        FragmentDescriptor fd = new ExternalFragment("js/closure/goog/base.js");
        fragments.add(fd);
        fd = new InternalFragment(testCode);
        fragments.add(fd);

        CalcDeps cd = new CalcDeps();
        try {
            String path = new java.io.File(".").getCanonicalPath();
            List<FragmentDescriptor> results = cd.calcDeps(fragments, new SimpleRequestProxy(path),
                    new ArrayList<String>());
            String exp = "js/closure/goog/base.js\n" +
                    "js/closure/goog/debug/error.js\n" +
                    "js/closure/goog/string/string.js\n" +
                    "js/closure/goog/asserts/asserts.js\n" +
                    "js/closure/goog/array/array.js\n" +
                    "js/closure/goog/useragent/useragent.js\n" +
                    "js/closure/goog/dom/browserfeature.js\n" +
                    "js/closure/goog/dom/tagname.js\n" +
                    "js/closure/goog/dom/classes.js\n" +
                    "js/closure/goog/math/coordinate.js\n" +
                    "js/closure/goog/math/size.js\n" +
                    "js/closure/goog/object/object.js\n" +
                    "js/closure/goog/dom/dom.js\n" +
                    "js/closure/goog/date/datelike.js\n" +
                    "js/closure/goog/date/date.js\n" +
                    "js/closure/goog/i18n/datetimesymbols.js\n" +
                    "js/closure/goog/dom/a11y.js\n" +
                    "js/closure/goog/debug/entrypointregistry.js\n" +
                    "js/closure/goog/debug/errorhandlerweakdep.js\n" +
                    "js/closure/goog/events/browserfeature.js\n" +
                    "js/closure/goog/disposable/disposable.js\n" +
                    "js/closure/goog/events/event.js\n" +
                    "js/closure/goog/events/eventtype.js\n" +
                    "js/closure/goog/reflect/reflect.js\n" +
                    "js/closure/goog/events/browserevent.js\n" +
                    "js/closure/goog/events/eventwrapper.js\n" +
                    "js/closure/goog/events/listener.js\n" +
                    "js/closure/goog/structs/simplepool.js\n" +
                    "js/closure/goog/useragent/jscript.js\n" +
                    "js/closure/goog/events/pools.js\n" +
                    "js/closure/goog/events/events.js\n" +
                    "js/closure/goog/events/eventtarget.js\n" +
                    "js/closure/goog/events/keycodes.js\n" +
                    "js/closure/goog/events/keyhandler.js\n" +
                    "js/closure/goog/i18n/timezone.js\n" +
                    "js/closure/goog/i18n/datetimeformat.js\n" +
                    "js/closure/goog/math/box.js\n" +
                    "js/closure/goog/math/rect.js\n" +
                    "js/closure/goog/style/style.js\n" +
                    "js/closure/goog/events/eventhandler.js\n" +
                    "js/closure/goog/ui/idgenerator.js\n" +
                    "js/closure/goog/ui/component.js\n" +
                    "js/closure/goog/ui/datepicker.js";
            String[] expected = exp.split("\n");
            assertEquals(expected.length + 1, results.size());
            for (int i = 0; i < expected.length; i++) {
                assert (results.get(i) instanceof ExternalFragment);
                assertEquals(((ExternalFragment) results.get(i)).getFilePath(), expected[i]);
            }
            assert (results.get(expected.length) instanceof InternalFragment);
            assertEquals(((InternalFragment) results.get(expected.length)).getText(), testCode);

        } catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
    }

}
TOP

Related Classes of com.granule.tag.utils.ClosureCalcDepsTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.