From 816843ac9d44a5e773a864f6c6b292758affd2c0 Fri, 23 Jan 2015 22:16:20 +0100
From: hass <hass@85918.no-reply.drupal.org>
Date: Fri, 23 Jan 2015 22:16:10 +0100
Subject: [PATCH] Issue #2411955: Settings form missing getEditableConfigNames method

diff --git a/src/Form/GoogleAnalyticsAdminSettingsForm.php b/src/Form/GoogleAnalyticsAdminSettingsForm.php
index d5ea770..ace0db7 100644
--- a/src/Form/GoogleAnalyticsAdminSettingsForm.php
+++ b/src/Form/GoogleAnalyticsAdminSettingsForm.php
@@ -26,6 +26,13 @@
   /**
    * {@inheritdoc}
    */
+  protected function getEditableConfigNames() {
+    return ['google_analytics.settings'];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $config = $this->config('google_analytics.settings');
 
diff --git a/src/Tests/GoogleAnalyticsBasicTest.php b/src/Tests/GoogleAnalyticsBasicTest.php
index 404f09a..4ddedc7 100644
--- a/src/Tests/GoogleAnalyticsBasicTest.php
+++ b/src/Tests/GoogleAnalyticsBasicTest.php
@@ -69,14 +69,14 @@
     $this->assertNoRaw('//www.google-analytics.com/analytics.js', '[testGoogleAnalyticsPageVisibility]: Tracking code is not displayed without UA code configured.');
 
     $ua_code = 'UA-123456-1';
-    \Drupal::config('google_analytics.settings')->set('account', $ua_code)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('account', $ua_code)->save();
 
     // Show tracking on "every page except the listed pages".
-    \Drupal::config('google_analytics.settings')->set('visibility.pages_enable', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.pages_enable', 0)->save();
     // Disable tracking on "admin*" pages only.
-    \Drupal::config('google_analytics.settings')->set('visibility.pages', "admin\nadmin/*")->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.pages', "admin\nadmin/*")->save();
     // Enable tracking only for authenticated users only.
-    \Drupal::config('google_analytics.settings')->set('visibility.roles', array(DRUPAL_AUTHENTICATED_RID => DRUPAL_AUTHENTICATED_RID))->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.roles', array(DRUPAL_AUTHENTICATED_RID => DRUPAL_AUTHENTICATED_RID))->save();
 
     // Check tracking code visibility.
     $this->drupalGet('');
@@ -90,7 +90,7 @@
     $this->assertNoRaw('//www.google-analytics.com/analytics.js', '[testGoogleAnalyticsPageVisibility]: Tracking code is not displayed on admin subpage.');
 
     // Test whether tracking code display is properly flipped.
-    \Drupal::config('google_analytics.settings')->set('visibility.pages_enabled', 1)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.pages_enabled', 1)->save();
     $this->drupalGet('admin');
     $this->assertRaw($ua_code, '[testGoogleAnalyticsPageVisibility]: Tracking code is displayed on admin page.');
     $this->drupalGet('admin/config/system/google-analytics');
@@ -105,9 +105,9 @@
     $this->assertNoRaw($ua_code, '[testGoogleAnalyticsPageVisibility]: Tracking code is NOT displayed for anonymous.');
 
     // Switch back to every page except the listed pages.
-    \Drupal::config('google_analytics.settings')->set('visibility.pages_enabled', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.pages_enabled', 0)->save();
     // Enable tracking code for all user roles.
-    \Drupal::config('google_analytics.settings')->set('visibility.roles', array())->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.roles', array())->save();
 
     // Test whether 403 forbidden tracking code is shown if user has no access.
     $this->drupalGet('admin');
@@ -121,7 +121,7 @@
 
     // DNT Tests:
     // Enable system internal page cache.
-    \Drupal::config('system.performance')
+    \Drupal::configFactory()->getEditable('system.performance')
       ->set('cache.page.use_internal', 1)
       ->set('cache.page.max_age', 3600)
       ->save();
@@ -129,7 +129,7 @@
     $this->drupalGet('', array(), array('DNT: 1'));
     $this->assertRaw('ga("send", "pageview");', '[testGoogleAnalyticsDNTVisibility]: DNT header send from client, but page caching is enabled and tracker cannot removed.');
     // DNT works only with system internal page cache disabled.
-    \Drupal::config('system.performance')
+    \Drupal::configFactory()->getEditable('system.performance')
       ->set('cache.page.use_internal', 0)
       ->set('cache.page.max_age', 0)
       ->save();
@@ -139,19 +139,19 @@
     $this->drupalGet('', array(), array('DNT: 1'));
     $this->assertNoRaw('ga("send", "pageview");', '[testGoogleAnalyticsDNTVisibility]: DNT header received from client. Tracking has been disabled by browser.');
     // Disable DNT feature and see if tracker is still embedded.
-    \Drupal::config('google_analytics.settings')->set('privacy.donottrack', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('privacy.donottrack', 0)->save();
     $this->drupalGet('', array(), array('DNT: 1'));
     $this->assertRaw('ga("send", "pageview");', '[testGoogleAnalyticsDNTVisibility]: DNT feature is disabled, DNT header from browser has been ignored.');
   }
 
   function testGoogleAnalyticsTrackingCode() {
     $ua_code = 'UA-123456-2';
-    \Drupal::config('google_analytics.settings')->set('account', $ua_code)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('account', $ua_code)->save();
 
     // Show tracking code on every page except the listed pages.
-    \Drupal::config('google_analytics.settings')->set('visibility.pages_enabled', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.pages_enabled', 0)->save();
     // Enable tracking code for all user roles.
-    \Drupal::config('google_analytics.settings')->set('visibility.roles', array())->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.roles', array())->save();
 
     /* Sample JS code as added to page:
     <script type="text/javascript" src="/sites/all/modules/google_analytics/google_analytics.js?w"></script>
@@ -168,56 +168,56 @@
     */
 
     // Test whether tracking code uses latest JS.
-    \Drupal::config('google_analytics.settings')->set('cache', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('cache', 0)->save();
     $this->drupalGet('');
     $this->assertRaw('//www.google-analytics.com/analytics.js', '[testGoogleAnalyticsTrackingCode]: Latest tracking code used.');
 
     // Test whether anonymize visitors IP address feature has been enabled.
-    \Drupal::config('google_analytics.settings')->set('privacy.anonymizeip', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('privacy.anonymizeip', 0)->save();
     $this->drupalGet('');
     $this->assertNoRaw('ga("set", "anonymizeIp", true);', '[testGoogleAnalyticsTrackingCode]: Anonymize visitors IP address not found on frontpage.');
     // Enable anonymizing of IP addresses.
-    \Drupal::config('google_analytics.settings')->set('privacy.anonymizeip', 1)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('privacy.anonymizeip', 1)->save();
     $this->drupalGet('');
     $this->assertRaw('ga("set", "anonymizeIp", true);', '[testGoogleAnalyticsTrackingCode]: Anonymize visitors IP address found on frontpage.');
 
     // Test if track Enhanced Link Attribution is enabled.
-    \Drupal::config('google_analytics.settings')->set('track.linkid', 1)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('track.linkid', 1)->save();
     $this->drupalGet('');
     $this->assertRaw('ga("require", "linkid", "linkid.js");', '[testGoogleAnalyticsTrackingCode]: Tracking code for Enhanced Link Attribution is enabled.');
 
     // Test if track Enhanced Link Attribution is disabled.
-    \Drupal::config('google_analytics.settings')->set('track.linkid', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('track.linkid', 0)->save();
     $this->drupalGet('');
     $this->assertNoRaw('ga("require", "linkid", "linkid.js");', '[testGoogleAnalyticsTrackingCode]: Tracking code for Enhanced Link Attribution is not enabled.');
 
     // Test if tracking of url fragments is enabled.
-    \Drupal::config('google_analytics.settings')->set('track.urlfragments', 1)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('track.urlfragments', 1)->save();
     $this->drupalGet('');
     $this->assertRaw('ga("set", "page", location.pathname + location.search + location.hash);', '[testGoogleAnalyticsTrackingCode]: Tracking code for url fragments is enabled.');
 
     // Test if tracking of url fragments is disabled.
-    \Drupal::config('google_analytics.settings')->set('track.urlfragments', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('track.urlfragments', 0)->save();
     $this->drupalGet('');
     $this->assertNoRaw('ga("set", "page", location.pathname + location.search + location.hash);', '[testGoogleAnalyticsTrackingCode]: Tracking code for url fragments is not enabled.');
 
     // Test if tracking of User ID is enabled.
-    \Drupal::config('google_analytics.settings')->set('track.userid', 1)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('track.userid', 1)->save();
     $this->drupalGet('');
     $this->assertRaw(', {"cookieDomain":"auto","userId":"', '[testGoogleAnalyticsTrackingCode]: Tracking code for User ID is enabled.');
 
     // Test if tracking of User ID is disabled.
-    \Drupal::config('google_analytics.settings')->set('track.userid', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('track.userid', 0)->save();
     $this->drupalGet('');
     $this->assertNoRaw(', {"cookieDomain":"auto","userId":"', '[testGoogleAnalyticsTrackingCode]: Tracking code for User ID is disabled.');
 
     // Test if track display features is enabled.
-    \Drupal::config('google_analytics.settings')->set('track.displayfeatures', 1)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('track.displayfeatures', 1)->save();
     $this->drupalGet('');
     $this->assertRaw('ga("require", "displayfeatures");', '[testGoogleAnalyticsTrackingCode]: Tracking code for display features is enabled.');
 
     // Test if track display features is disabled.
-    \Drupal::config('google_analytics.settings')->set('track.displayfeatures', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('track.displayfeatures', 0)->save();
     $this->drupalGet('');
     $this->assertNoRaw('ga("require", "displayfeatures");', '[testGoogleAnalyticsTrackingCode]: Tracking code for display features is not enabled.');
 
@@ -226,7 +226,7 @@
     $this->assertRaw('{"cookieDomain":"auto"}', '[testGoogleAnalyticsTrackingCode]: Single domain tracking is active.');
 
     // Enable "One domain with multiple subdomains".
-    \Drupal::config('google_analytics.settings')->set('domain_mode', 1)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('domain_mode', 1)->save();
     $this->drupalGet('');
 
     // Test may run on localhost, an ipaddress or real domain name.
@@ -241,7 +241,7 @@
     }
 
     // Enable "Multiple top-level domains" tracking.
-    \Drupal::config('google_analytics.settings')
+    \Drupal::configFactory()->getEditable('google_analytics.settings')
       ->set('domain_mode', 2)
       ->set('cross_domains', "www.example.com\nwww.example.net")
       ->save();
@@ -250,10 +250,10 @@
     $this->assertRaw('ga("require", "linker");', '[testGoogleAnalyticsTrackingCode]: Require linker has been found. Cross domain tracking is active.');
     $this->assertRaw('ga("linker:autoLink", ["www.example.com","www.example.net"]);', '[testGoogleAnalyticsTrackingCode]: "linker:autoLink" has been found. Cross domain tracking is active.');
     $this->assertRaw('"trackCrossDomains":["www.example.com","www.example.net"]', '[testGoogleAnalyticsTrackingCode]: Cross domain tracking with www.example.com and www.example.net is active.');
-    \Drupal::config('google_analytics.settings')->set('domain_mode', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('domain_mode', 0)->save();
 
     // Test whether debugging script has been enabled.
-    \Drupal::config('google_analytics.settings')->set('debug', 1)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('debug', 1)->save();
     $this->drupalGet('');
     $this->assertRaw('//www.google-analytics.com/analytics_debug.js', '[testGoogleAnalyticsTrackingCode]: Google debugging script has been enabled.');
 
@@ -263,7 +263,7 @@
     $this->assertRaw(t('Google Analytics module has debugging enabled. Please disable debugging setting in production sites from the <a href="@url">Google Analytics settings page</a>.', array('@url' => \Drupal::url('google_analytics.admin_settings_form'))), '[testGoogleAnalyticsConfiguration]: Debugging enabled is shown on Status Reports page.');
 
     // Test whether debugging script has been disabled.
-    \Drupal::config('google_analytics.settings')->set('debug', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('debug', 0)->save();
     $this->drupalGet('');
     $this->assertRaw('//www.google-analytics.com/analytics.js', '[testGoogleAnalyticsTrackingCode]: Google debugging script has been disabled.');
 
@@ -275,7 +275,7 @@
       'allowAnchor' => TRUE,
       'sampleRate' => 4.3,
     );
-    \Drupal::config('google_analytics.settings')
+    \Drupal::configFactory()->getEditable('google_analytics.settings')
       ->set('codesnippet.create', $codesnippet_create)
       ->set('codesnippet.before', 'ga("set", "forceSSL", true);')
       ->set('codesnippet.after', 'ga("create", "UA-123456-3", {"name": "newTracker"});ga("newTracker.send", "pageview");')
diff --git a/src/Tests/GoogleAnalyticsCustomDimensionsAndMetricsTest.php b/src/Tests/GoogleAnalyticsCustomDimensionsAndMetricsTest.php
index f4e1771..c9a8cbd 100644
--- a/src/Tests/GoogleAnalyticsCustomDimensionsAndMetricsTest.php
+++ b/src/Tests/GoogleAnalyticsCustomDimensionsAndMetricsTest.php
@@ -42,7 +42,7 @@
 
   function testGoogleAnalyticsCustomDimensions() {
     $ua_code = 'UA-123456-3';
-    \Drupal::config('google_analytics.settings')->set('account', $ua_code)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('account', $ua_code)->save();
 
     // Basic test if the feature works.
     $google_analytics_custom_dimension = array(
@@ -67,7 +67,7 @@
         'value' => 'Bar 5',
       ),
     );
-    \Drupal::config('google_analytics.settings')->set('custom.dimension', $google_analytics_custom_dimension)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('custom.dimension', $google_analytics_custom_dimension)->save();
     $this->drupalGet('');
 
     foreach ($google_analytics_custom_dimension as $dimension) {
@@ -76,7 +76,7 @@
 
     // Test whether tokens are replaced in custom dimension values.
     $site_slogan = $this->randomMachineName(16);
-    \Drupal::config('system.site')->set('slogan', $site_slogan)->save();
+    \Drupal::configFactory()->getEditable('system.site')->set('slogan', $site_slogan)->save();
 
     $google_analytics_custom_dimension = array(
       1 => array(
@@ -97,7 +97,7 @@
         'value' => '0',
       ),
     );
-    \Drupal::config('google_analytics.settings')->set('custom.dimension', $google_analytics_custom_dimension)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('custom.dimension', $google_analytics_custom_dimension)->save();
     $this->verbose('<pre>' . print_r($google_analytics_custom_dimension, TRUE) . '</pre>');
 
     $this->drupalGet('');
@@ -109,7 +109,7 @@
 
   function testGoogleAnalyticsCustomMetrics() {
     $ua_code = 'UA-123456-3';
-    \Drupal::config('google_analytics.settings')->set('account', $ua_code)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('account', $ua_code)->save();
 
     // Basic test if the feature works.
     $google_analytics_custom_metric = array(
@@ -139,7 +139,7 @@
         'value_expected' => 5,
       ),
     );
-    \Drupal::config('google_analytics.settings')->set('custom.metric', $google_analytics_custom_metric)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('custom.metric', $google_analytics_custom_metric)->save();
     $this->drupalGet('');
 
     foreach ($google_analytics_custom_metric as $metric) {
@@ -166,7 +166,7 @@
         'value' => '0',
       ),
     );
-    \Drupal::config('google_analytics.settings')->set('custom.metric', $google_analytics_custom_metric)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('custom.metric', $google_analytics_custom_metric)->save();
     $this->verbose('<pre>' . print_r($google_analytics_custom_metric, TRUE) . '</pre>');
 
     $this->drupalGet('');
diff --git a/src/Tests/GoogleAnalyticsPhpFilterTest.php b/src/Tests/GoogleAnalyticsPhpFilterTest.php
index a3a0d0c..da54e35 100644
--- a/src/Tests/GoogleAnalyticsPhpFilterTest.php
+++ b/src/Tests/GoogleAnalyticsPhpFilterTest.php
@@ -58,22 +58,22 @@
     $this->drupalPostForm('admin/config/system/google-analytics', $edit, t('Save configuration'));
 
     // Compare saved setting with posted setting.
-    $google_analytics_pages = \Drupal::config('google_analytics.settings')->get('visibility.pages');
+    $google_analytics_pages = \Drupal::configFactory()->getEditable('google_analytics.settings')->get('visibility.pages');
     $this->assertEqual('<?php return 0; ?>', $google_analytics_pages, '[testGoogleAnalyticsPhpFilter]: PHP code snippet is intact.');
 
     // Check tracking code visibility.
-    \Drupal::config('google_analytics.settings')->set('visibility.pages', '<?php return TRUE; ?>')->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.pages', '<?php return TRUE; ?>')->save();
     $this->drupalGet('');
     $this->assertRaw('//www.google-analytics.com/analytics.js', '[testGoogleAnalyticsPhpFilter]: Tracking is displayed on frontpage page.');
     $this->drupalGet('admin');
     $this->assertRaw('//www.google-analytics.com/analytics.js', '[testGoogleAnalyticsPhpFilter]: Tracking is displayed on admin page.');
 
-    \Drupal::config('google_analytics.settings')->set('visibility.pages', '<?php return FALSE; ?>')->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.pages', '<?php return FALSE; ?>')->save();
     $this->drupalGet('');
     $this->assertNoRaw('//www.google-analytics.com/analytics.js', '[testGoogleAnalyticsPhpFilter]: Tracking is not displayed on frontpage page.');
 
     // Test administration form.
-    \Drupal::config('google_analytics.settings')->set('visibility.pages', '<?php return TRUE; ?>')->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.pages', '<?php return TRUE; ?>')->save();
     $this->drupalGet('admin/config/system/google-analytics');
     $this->assertRaw(t('Pages on which this PHP code returns <code>TRUE</code> (experts only)'), '[testGoogleAnalyticsPhpFilter]: Permission to administer PHP for tracking visibility.');
     $this->assertRaw(String::checkPlain('<?php return TRUE; ?>'), '[testGoogleAnalyticsPhpFilter]: PHP code snippted is displayed.');
@@ -85,15 +85,15 @@
     $this->assertNoRaw(String::checkPlain('<?php return TRUE; ?>'), '[testGoogleAnalyticsPhpFilter]: No permission to view PHP code snippted.');
 
     // Set a different value and verify that this is still the same after the post.
-    \Drupal::config('google_analytics.settings')->set('visibility.pages', '<?php return 0; ?>')->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.pages', '<?php return 0; ?>')->save();
 
     $edit = array();
     $edit['google_analytics_account'] = $ua_code;
     $this->drupalPostForm('admin/config/system/google-analytics', $edit, t('Save configuration'));
 
     // Compare saved setting with posted setting.
-    $google_analytics_visibility_pages = \Drupal::config('google_analytics.settings')->get('visibility.pages_enabled');
-    $google_analytics_pages = \Drupal::config('google_analytics.settings')->get('visibility.pages');
+    $google_analytics_visibility_pages = \Drupal::configFactory()->getEditable('google_analytics.settings')->get('visibility.pages_enabled');
+    $google_analytics_pages = \Drupal::configFactory()->getEditable('google_analytics.settings')->get('visibility.pages');
     $this->assertEqual(2, $google_analytics_visibility_pages, '[testGoogleAnalyticsPhpFilter]: Pages on which this PHP code returns TRUE is selected.');
     $this->assertEqual('<?php return 0; ?>', $google_analytics_pages, '[testGoogleAnalyticsPhpFilter]: PHP code snippet is intact.');
   }
diff --git a/src/Tests/GoogleAnalyticsRolesTest.php b/src/Tests/GoogleAnalyticsRolesTest.php
index a1a5786..0ac954e 100644
--- a/src/Tests/GoogleAnalyticsRolesTest.php
+++ b/src/Tests/GoogleAnalyticsRolesTest.php
@@ -40,14 +40,14 @@
 
   function testGoogleAnalyticsRolesTracking() {
     $ua_code = 'UA-123456-4';
-    \Drupal::config('google_analytics.settings')->set('account', $ua_code)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('account', $ua_code)->save();
 
     // Test if the default settings are working as expected.
 
     // Add to the selected roles only.
-    \Drupal::config('google_analytics.settings')->set('visibility.roles_enabled', 0)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.roles_enabled', 0)->save();
     // Enable tracking for all users.
-    \Drupal::config('google_analytics.settings')->set('visibility.roles', array())->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.roles', array())->save();
 
     // Check tracking code visibility.
     $this->drupalGet('');
@@ -66,7 +66,7 @@
     // Test if the non-default settings are working as expected.
 
     // Enable tracking only for authenticated users.
-    \Drupal::config('google_analytics.settings')->set('visibility.roles', array(DRUPAL_AUTHENTICATED_RID => DRUPAL_AUTHENTICATED_RID))->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.roles', array(DRUPAL_AUTHENTICATED_RID => DRUPAL_AUTHENTICATED_RID))->save();
 
     $this->drupalGet('');
     $this->assertRaw($ua_code, '[testGoogleAnalyticsRoleVisibility]: Tracking code is displayed for authenticated users only on frontpage.');
@@ -76,9 +76,9 @@
     $this->assertNoRaw($ua_code, '[testGoogleAnalyticsRoleVisibility]: Tracking code is NOT displayed for anonymous users on frontpage.');
 
     // Add to every role except the selected ones.
-    \Drupal::config('google_analytics.settings')->set('visibility.roles_enabled', 1)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.roles_enabled', 1)->save();
     // Enable tracking for all users.
-    \Drupal::config('google_analytics.settings')->set('visibility.roles', array())->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.roles', array())->save();
 
     // Check tracking code visibility.
     $this->drupalGet('');
@@ -95,7 +95,7 @@
     $this->assertNoRaw($ua_code, '[testGoogleAnalyticsRoleVisibility]: Tracking code is added to every role and NOT displayed in admin section for authenticated users.');
 
     // Disable tracking for authenticated users.
-    \Drupal::config('google_analytics.settings')->set('visibility.roles', array(DRUPAL_AUTHENTICATED_RID => DRUPAL_AUTHENTICATED_RID))->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('visibility.roles', array(DRUPAL_AUTHENTICATED_RID => DRUPAL_AUTHENTICATED_RID))->save();
 
     $this->drupalGet('');
     $this->assertNoRaw($ua_code, '[testGoogleAnalyticsRoleVisibility]: Tracking code is NOT displayed on frontpage for excluded authenticated users.');
diff --git a/src/Tests/GoogleAnalyticsSearchTest.php b/src/Tests/GoogleAnalyticsSearchTest.php
index 977f677..813b5fd 100644
--- a/src/Tests/GoogleAnalyticsSearchTest.php
+++ b/src/Tests/GoogleAnalyticsSearchTest.php
@@ -46,7 +46,7 @@
 
   function testGoogleAnalyticsSearchTracking() {
     $ua_code = 'UA-123456-1';
-    \Drupal::config('google_analytics.settings')->set('account', $ua_code)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('account', $ua_code)->save();
 
     // Check tracking code visibility.
     $this->drupalGet('');
@@ -56,7 +56,7 @@
     $this->assertNoRaw('ga("set", "page",', '[testGoogleAnalyticsSearch]: Custom url not set.');
 
     // Enable site search support.
-    \Drupal::config('google_analytics.settings')->set('track.site_search', 1)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('track.site_search', 1)->save();
 
     // Search for random string.
     $search = array();
diff --git a/src/Tests/GoogleAnalyticsStatusMessagesTest.php b/src/Tests/GoogleAnalyticsStatusMessagesTest.php
index b11f7f0..b6bb8c8 100644
--- a/src/Tests/GoogleAnalyticsStatusMessagesTest.php
+++ b/src/Tests/GoogleAnalyticsStatusMessagesTest.php
@@ -40,10 +40,10 @@
 
   function testGoogleAnalyticsStatusMessages() {
     $ua_code = 'UA-123456-4';
-    \Drupal::config('google_analytics.settings')->set('account', $ua_code)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('account', $ua_code)->save();
 
     // Enable logging of errors only.
-    \Drupal::config('google_analytics.settings')->set('track.messages', array('error' => 'error'))->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('track.messages', array('error' => 'error'))->save();
 
     $this->drupalPostForm('user/login', array(), t('Log in'));
     $this->assertRaw('ga("send", "event", "Messages", "Error message", "Username field is required.");', '[testGoogleAnalyticsStatusMessages]: Event message "Username field is required." is shown.');
diff --git a/src/Tests/GoogleAnalyticsUninstallTest.php b/src/Tests/GoogleAnalyticsUninstallTest.php
index 381fe33..020d94a 100644
--- a/src/Tests/GoogleAnalyticsUninstallTest.php
+++ b/src/Tests/GoogleAnalyticsUninstallTest.php
@@ -45,10 +45,10 @@
     $ua_code = 'UA-123456-1';
 
     // Show tracker in pages.
-    \Drupal::config('google_analytics.settings')->set('account', $ua_code)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('account', $ua_code)->save();
 
     // Enable local caching of analytics.js
-    \Drupal::config('google_analytics.settings')->set('cache', 1)->save();
+    \Drupal::configFactory()->getEditable('google_analytics.settings')->set('cache', 1)->save();
 
     // Load page to get the analytics.js downloaded into local cache.
     $this->drupalGet('');
