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

Commit 4795b0df authored by Yorke Lee's avatar Yorke Lee Committed by Divya Sharma
Browse files

Fix NPEs in ActionBarControllerTest

Create a MockActionBar that to prevent NPEs. For this an
ActivityInstrumentationTestCase is needed.

Bug: 17487016
Change-Id: I02cff1fc9164deee3410b0cb74a18e76fd19734c
parent 14b8578b
Loading
Loading
Loading
Loading
+36 −3
Original line number Diff line number Diff line
@@ -17,25 +17,53 @@
package com.android.dialer.widget;

import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.test.ActivityInstrumentationTestCase2;
import android.test.AndroidTestCase;
import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import android.view.View;

import com.android.dialer.DialtactsActivity;
import com.android.dialer.widget.ActionBarController.ActivityUi;
import com.android.internal.app.WindowDecorActionBar;

@SmallTest
public class ActionBarControllerTest extends InstrumentationTestCase {
public class ActionBarControllerTest extends ActivityInstrumentationTestCase2<DialtactsActivity> {

    private static final int ACTION_BAR_HEIGHT = 100;
    private ActionBarController mActionBarController;
    private SearchEditTextLayout mSearchBox;
    private MockActivityUi mActivityUi;

    private class MockActionBar extends WindowDecorActionBar {
        private int mHideOffset = 0;

        public MockActionBar(Activity activity) {
            super(activity);
        }

        @Override
        public void setHideOffset(int offset) {
            mHideOffset = offset;
        }

        @Override
        public int getHideOffset() {
            return mHideOffset;
        }
    }

    private class MockActivityUi implements ActivityUi {
        boolean isInSearchUi;
        boolean hasSearchQuery;
        boolean shouldShowActionBar;
        int actionBarHideOffset;
        private ActionBar mActionBar;

        public MockActivityUi() {
             mActionBar = new MockActionBar(getActivity());
        }

        @Override
        public boolean isInSearchUi() {
@@ -59,7 +87,7 @@ public class ActionBarControllerTest extends InstrumentationTestCase {

        @Override
        public ActionBar getActionBar() {
            return null;
            return mActionBar;
        }
    }

@@ -83,6 +111,11 @@ public class ActionBarControllerTest extends InstrumentationTestCase {
        }
    }

    public ActionBarControllerTest() {
        super(DialtactsActivity.class);
    }


    @Override
    protected void setUp() {
        mActivityUi = new MockActivityUi();