Index: chrome/android/javatests/src/org/chromium/chrome/browser/compositor/layouts/MockResourcesForLayout.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/layouts/MockResourcesForLayout.java b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/layouts/MockResourcesForLayout.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fe47318ff75302518e981c693129f632d1151ad6 |
--- /dev/null |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/layouts/MockResourcesForLayout.java |
@@ -0,0 +1,134 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.chrome.browser.compositor.layouts; |
+ |
+import android.content.res.Configuration; |
+import android.content.res.Resources; |
+import android.graphics.Color; |
+import android.graphics.drawable.ColorDrawable; |
+import android.graphics.drawable.Drawable; |
+import android.test.mock.MockResources; |
+import android.util.DisplayMetrics; |
+import android.util.SparseArray; |
+ |
+import com.google.android.apps.chrome.R; |
+ |
+/** |
+ * This is the minimal {@link Resources} needed by the {@link LayoutManager} to be working properly. |
+ * Values Come from the xml files (e.g. dimens.xml, values.xml, ...). |
+ * All the dimension values are in dp. |
+ * For internal structures, not based on xml configurations, a dummy {@link Resources} instance is |
+ * provided. |
+ */ |
+public class MockResourcesForLayout extends MockResources { |
+ private final Resources mValidResources; |
+ private final SparseArray<Float> mFloats = new SparseArray<Float>(); |
+ private final SparseArray<Integer> mIntegers = new SparseArray<Integer>(); |
+ private final SparseArray<Boolean> mBooleans = new SparseArray<Boolean>(); |
+ private final SparseArray<String> mStrings = new SparseArray<String>(); |
+ private final Drawable mDrawable = new ColorDrawable(Color.RED); |
+ |
+ public MockResourcesForLayout(Resources resources) { |
+ mValidResources = resources; |
+ mFloats.put(R.dimen.over_scroll_slide, 10.0f); |
+ mFloats.put(R.dimen.tabswitcher_border_frame_padding_left, 6.f); |
+ mFloats.put(R.dimen.tabswitcher_border_frame_padding_top, 50.f); |
+ mFloats.put(org.chromium.chrome.R.dimen.compositor_tab_title_text_size, 13.0f); |
+ mIntegers.put(R.color.tab_switcher_background, 0xFF111111); |
+ mFloats.put(R.dimen.over_scroll, 75.0f); |
+ mIntegers.put(R.integer.over_scroll_angle, 15); |
+ mFloats.put(R.dimen.even_out_scrolling, 400.0f); |
+ mFloats.put(R.dimen.min_spacing, 120.0f); |
+ mFloats.put(R.dimen.swipe_commit_distance, 120.0f); |
+ mFloats.put(R.dimen.toolbar_swipe_space_between_tabs, 30.0f); |
+ mFloats.put(R.dimen.toolbar_swipe_commit_distance, 90.0f); |
+ mIntegers.put( |
+ org.chromium.chrome.R.color.compositor_tab_title_bar_text_incognito, 0xFFffFFff); |
+ mIntegers.put(org.chromium.chrome.R.color.compositor_tab_title_bar_text, 0xFF555555); |
+ mIntegers.put( |
+ org.chromium.chrome.R.color.compositor_tab_title_bar_shadow_incognito, 0x88000000); |
+ mIntegers.put(org.chromium.chrome.R.color.compositor_tab_title_bar_shadow, 0xAAffFFff); |
+ mFloats.put(org.chromium.chrome.R.dimen.compositor_tab_title_bar_shadow_x_offset_incognito, |
+ -0.6667f); |
+ mFloats.put(org.chromium.chrome.R.dimen.compositor_tab_title_bar_shadow_x_offset, 0.6667f); |
+ mFloats.put(org.chromium.chrome.R.dimen.compositor_tab_title_bar_shadow_y_offset_incognito, |
+ -0.6667f); |
+ mFloats.put(org.chromium.chrome.R.dimen.compositor_tab_title_bar_shadow_y_offset, 0.6667f); |
+ mFloats.put(R.dimen.tab_title_favicon_start_padding, 16.0f); |
+ mFloats.put(R.dimen.tab_title_favicon_end_padding, 7.0f); |
+ mFloats.put(org.chromium.chrome.R.dimen.compositor_tab_title_favicon_size, 16.0f); |
+ mFloats.put(R.dimen.stacked_tab_visible_size, 4.0f); |
+ mFloats.put(R.dimen.stack_buffer_width, 5.0f); |
+ mFloats.put(R.dimen.stack_buffer_height, 5.0f); |
+ mFloats.put(org.chromium.chrome.R.dimen.compositor_button_slop, 20.0f); |
+ mFloats.put(R.dimen.accessibility_tab_height, 65.f); |
+ mFloats.put(R.dimen.tabswitcher_border_frame_padding_left, 6.f); |
+ mFloats.put(R.dimen.tabswitcher_border_frame_padding_top, 50.f); |
+ mFloats.put(R.dimen.tabswitcher_border_frame_transparent_top, 3.f); |
+ mFloats.put(R.dimen.tabswitcher_border_frame_transparent_side, 2.f); |
+ mBooleans.put(org.chromium.chrome.R.bool.compositor_tab_title_fake_bold_text, true); |
+ mStrings.put(R.string.tab_loading_default_title, "Loading..."); |
+ mFloats.put(org.chromium.chrome.R.dimen.contextual_search_bar_height, 80.f); |
+ } |
+ |
+ @Override |
+ public DisplayMetrics getDisplayMetrics() { |
+ return mValidResources.getDisplayMetrics(); |
+ } |
+ |
+ @Override |
+ public Configuration getConfiguration() { |
+ return mValidResources.getConfiguration(); |
+ } |
+ |
+ @Override |
+ public int getDimensionPixelSize(int id) { |
+ return Math.round(getDimension(id)); |
+ } |
+ |
+ @Override |
+ public int getDimensionPixelOffset(int id) { |
+ return getDimensionPixelSize(id); |
+ } |
+ |
+ @Override |
+ public float getDimension(int id) { |
+ final Float value = mFloats.get(id); |
+ return value != null ? value.floatValue() : mValidResources.getDimension(id); |
+ } |
+ |
+ @Override |
+ public int getInteger(int id) { |
+ final Integer value = mIntegers.get(id); |
+ return value != null ? value.intValue() : mValidResources.getInteger(id); |
+ } |
+ |
+ @Override |
+ public boolean getBoolean(int id) { |
+ final Boolean value = mBooleans.get(id); |
+ return value != null ? value.booleanValue() : mValidResources.getBoolean(id); |
+ } |
+ |
+ @Override |
+ public String getString(int id) { |
+ final String value = mStrings.get(id); |
+ return value != null ? value.toString() : mValidResources.getString(id); |
+ } |
+ |
+ @Override |
+ public int getColor(int id) { |
+ return getInteger(id); |
+ } |
+ |
+ @Override |
+ public Drawable getDrawable(int id) { |
+ return mDrawable; |
+ } |
+ |
+ @Override |
+ public Drawable getDrawable(int id, Resources.Theme theme) { |
+ return mDrawable; |
+ } |
+} |