Reland "Unit test for case where the number of active and configured spatial"

This reverts commit 425193b4a92f0df1f3fbea3626b9abf6a38f67ec.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Unit test for case where the number of active and configured spatial"
> 
> This reverts commit 5eb6045ce5754ce815929c54dd27ab0bf3ae62ba.
> 
> Reason for revert: Test breaks downstream.
> 
> Original change's description:
> > Unit test for case where the number of active and configured spatial
> > layers differ.
> > 
> > Bug: webrtc:9472
> > Change-Id: I5cf292a12d73777ca0fd5771eb1a4756626f640c
> > Reviewed-on: https://webrtc-review.googlesource.com/85644
> > Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> > Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> > Commit-Queue: Michael Horowitz <mhoro@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#23782}
> 
> TBR=brandtr@webrtc.org,ssilkin@webrtc.org,mhoro@webrtc.org
> 
> Change-Id: Ib97cdb127e79ee969f7cb3f931cb7bd533f13af0
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9472
> Reviewed-on: https://webrtc-review.googlesource.com/86320
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23785}

TBR=brandtr@webrtc.org,terelius@webrtc.org,ssilkin@webrtc.org,mhoro@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:9472
Change-Id: I796909c553702a0fa19e5e16e4586f915569b134
Reviewed-on: https://webrtc-review.googlesource.com/87220
Reviewed-by: Michael Horowitz <mhoro@webrtc.org>
Commit-Queue: Michael Horowitz <mhoro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23847}
diff --git a/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc b/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc
index c56bacf..6ea464e 100644
--- a/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc
+++ b/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc
@@ -218,14 +218,17 @@
 }
 
 TEST_F(TestVp9Impl, EnableDisableSpatialLayers) {
-  // Configure encoder to produce N spatial layers. Encode few frames of layer 0
-  // then enable layer 1 and encode few more frames and so on until layer N-1.
+  // Configure encoder to produce N spatial layers. Encode frames of layer 0
+  // then enable layer 1 and encode more frames and so on until layer N-1.
   // Then disable layers one by one in the same way.
+  // Note: bit rate allocation is high to avoid frame dropping due to rate
+  // control, the encoder should always produce a frame. A dropped
+  // frame indicates a problem and the test will fail.
   const size_t num_spatial_layers = 3;
-  const size_t num_frames_to_encode = 2;
+  const size_t num_frames_to_encode = 5;
 
   ConfigureSvc(num_spatial_layers);
-  codec_settings_.VP9()->frameDroppingOn = false;
+  codec_settings_.VP9()->frameDroppingOn = true;
 
   EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK,
             encoder_->InitEncode(&codec_settings_, 1 /* number of cores */,
@@ -233,8 +236,10 @@
 
   VideoBitrateAllocation bitrate_allocation;
   for (size_t sl_idx = 0; sl_idx < num_spatial_layers; ++sl_idx) {
+    // Allocate high bit rate to avoid frame dropping due to rate control.
     bitrate_allocation.SetBitrate(
-        sl_idx, 0, codec_settings_.spatialLayers[sl_idx].targetBitrate * 1000);
+        sl_idx, 0,
+        codec_settings_.spatialLayers[sl_idx].targetBitrate * 1000 * 2);
     EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK,
               encoder_->SetRateAllocation(bitrate_allocation,
                                           codec_settings_.maxFramerate));