Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c739671 authored by Xavier Ducrohet's avatar Xavier Ducrohet
Browse files

Fix the layoutlib test to run from adt-tests.

Change-Id: I34f513429593dce9f781ed8a08c4664a5d6f9aa8
parent ac7391de
Loading
Loading
Loading
Loading
+51 −5
Original line number Diff line number Diff line
@@ -73,6 +73,48 @@ public class BridgeTest extends TestCase {
        }
    }

    /**
     * Mock implementation of {@link IStyleResourceValue}.
     */
    private static class StyleResourceValueMock extends ResourceValue
            implements IStyleResourceValue {

        private String mParentStyle = null;
        private HashMap<String, IResourceValue> mItems = new HashMap<String, IResourceValue>();

        StyleResourceValueMock(String name) {
            super(name);
        }

        StyleResourceValueMock(String name, String parentStyle) {
            super(name);
            mParentStyle = parentStyle;
        }

        public String getParentStyle() {
            return mParentStyle;
        }

        public IResourceValue findItem(String name) {
            return mItems.get(name);
        }

        public void addItem(IResourceValue value) {
            mItems.put(value.getName(), value);
        }

        @Override
        public void replaceWith(ResourceValue value) {
            super.replaceWith(value);

            if (value instanceof StyleResourceValueMock) {
                mItems.clear();
                mItems.putAll(((StyleResourceValueMock)value).mItems);
            }
        }
    }


    public void testComputeLayout() throws Exception {
        
        TestParser parser = new TestParser();
@@ -88,8 +130,10 @@ public class BridgeTest extends TestCase {
        
        // FIXME need a dummy font for the tests!
        ILayoutResult result = mBridge.computeLayout(parser, new Integer(1) /* projectKey */, 
                screenWidth, screenHeight,
                "Theme", projectResources, frameworkResources, null, null);
                screenWidth, screenHeight, false /* full render */,
                160, 160f, 160f,
                "Theme", false /* is project theme */,
                projectResources, frameworkResources, null, null);
                
        display(result.getRootView(), "");
    }
@@ -191,7 +235,7 @@ public class BridgeTest extends TestCase {
     * a style item value. If the number of string in the array is not even, an exception is thrown.
     */
    private IStyleResourceValue createStyle(String styleName, String... items) {
        StyleResourceValue value = new StyleResourceValue(styleName);
        StyleResourceValueMock value = new StyleResourceValueMock(styleName);
        
        if (items.length % 3 == 0) {
            for (int i = 0 ; i < items.length;) {
@@ -220,8 +264,10 @@ public class BridgeTest extends TestCase {

        // FIXME need a dummy font for the tests!
        ILayoutResult result = mBridge.computeLayout(parser, new Integer(1) /* projectKey */,
                screenWidth, screenHeight,
                "Theme", projectResources, frameworkResources, null, null);
                screenWidth, screenHeight, false /* full render */,
                160, 160f, 160f,
                "Theme", false /* is project theme */,
                projectResources, frameworkResources, null, null);
                
        display(result.getRootView(), "");
    }
+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ public class BridgeXmlBlockParserTest extends TestCase {
    @Override
    protected void setUp() throws Exception {
        super.setUp();
        URL url = this.getClass().getClassLoader().getResource("data/layout1.xml");
        URL url = this.getClass().getClassLoader().getResource("layout1.xml");
        mXmlPath = url.getFile();
        mDoc = getXmlDocument(mXmlPath);
    }
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ public class NinePatchTest extends TestCase {

    @Override
    protected void setUp() throws Exception {
        URL url = this.getClass().getClassLoader().getResource("data/button.9.png");
        URL url = this.getClass().getClassLoader().getResource("button.9.png");

        mPatch = NinePatch.load(url, false /* convert */);
    }
+0 −60
Original line number Diff line number Diff line
/*
 * Copyright (C) 2008 The Android Open Source Project
 *
 * 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.android.layoutlib.bridge;

import com.android.layoutlib.api.IResourceValue;
import com.android.layoutlib.api.IStyleResourceValue;

import java.util.HashMap;

class StyleResourceValue extends ResourceValue implements IStyleResourceValue {

    private String mParentStyle = null;
    private HashMap<String, IResourceValue> mItems = new HashMap<String, IResourceValue>();

    StyleResourceValue(String name) {
        super(name);
    }

    StyleResourceValue(String name, String parentStyle) {
        super(name);
        mParentStyle = parentStyle;
    }

    public String getParentStyle() {
        return mParentStyle;
    }
    
    public IResourceValue findItem(String name) {
        return mItems.get(name);
    }
    
    public void addItem(IResourceValue value) {
        mItems.put(value.getName(), value);
    }
    
    @Override
    public void replaceWith(ResourceValue value) {
        super.replaceWith(value);
        
        if (value instanceof StyleResourceValue) {
            mItems.clear();
            mItems.putAll(((StyleResourceValue)value).mItems);
        }
    }

}
Loading