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

Commit 85d5d627 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix "Add Network" button on SavedAccessPoints page." into oc-mr1-dev

parents de603ea4 c069669d
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.wifi;

import android.annotation.Nullable;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.res.Resources;
@@ -28,6 +29,7 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.util.Log;

import android.widget.Toast;
import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
@@ -78,6 +80,22 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment
        }
    };

    private final WifiManager.ActionListener mSaveListener = new WifiManager.ActionListener() {
        @Override
        public void onSuccess() {
            initPreferences();
        }
        @Override
        public void onFailure(int reason) {
            Activity activity = getActivity();
            if (activity != null) {
                Toast.makeText(activity,
                    R.string.wifi_failed_save_message,
                    Toast.LENGTH_SHORT).show();
            }
        }
    };

    private WifiDialog mDialog;
    private WifiManager mWifiManager;
    private AccessPoint mDlgAccessPoint;
@@ -251,7 +269,7 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment

    @Override
    public void onSubmit(WifiDialog dialog) {
        // Ignored
        mWifiManager.save(dialog.getController().getConfig(), mSaveListener);
    }

    @Override
+88 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.settings.wifi;

import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager.ActionListener;

import com.android.settings.TestConfig;
import com.android.settingslib.wifi.AccessPoint;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import com.android.settings.testutils.SettingsRobolectricTestRunner;

@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SavedAccessPointsWifiSettingsTest {

  @Mock private Activity mActivity;
  @Mock private WifiManager mockWifiManager;
  @Mock private WifiDialog mockWifiDialog;
  @Mock private WifiConfigController mockConfigController;
  @Mock private WifiConfiguration mockWifiConfiguration;
  @Mock private AccessPoint mockAccessPoint;

  private Context mContext;

  private SavedAccessPointsWifiSettings mFragment;

  @Before
  public void setUp() {
    MockitoAnnotations.initMocks(this);
    mContext = RuntimeEnvironment.application;
    mFragment = new SavedAccessPointsWifiSettings();
    when(mockWifiDialog.getController()).thenReturn(mockConfigController);
    when(mockConfigController.getConfig()).thenReturn(mockWifiConfiguration);

    ReflectionHelpers.setField(mFragment, "mWifiManager", mockWifiManager);
  }

  @Test
  public void onSubmit_shouldInvokeSaveApi() {
    mFragment.onSubmit(mockWifiDialog);
    verify(mockWifiManager).save(eq(mockWifiConfiguration), any(ActionListener.class));
  }

  @Test
  public void onForget_shouldInvokeForgetApi() {
    ReflectionHelpers.setField(mFragment, "mSelectedAccessPoint", mockAccessPoint);
    when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfiguration);

    mFragment.onForget(mockWifiDialog);

    verify(mockWifiManager).forget(eq(mockWifiConfiguration.networkId), any(ActionListener.class));
  }
}