You are here

public function GoogleAnalyticsUserFieldsTest::testGoogleAnalyticsUserFields in Google Analytics 4.x

Same name and namespace in other branches
  1. 8.3 tests/src/Functional/GoogleAnalyticsUserFieldsTest.php \Drupal\Tests\google_analytics\Functional\GoogleAnalyticsUserFieldsTest::testGoogleAnalyticsUserFields()
  2. 8.2 tests/src/Functional/GoogleAnalyticsUserFieldsTest.php \Drupal\Tests\google_analytics\Functional\GoogleAnalyticsUserFieldsTest::testGoogleAnalyticsUserFields()

Tests if "allow users to customize tracking on their account page" works.

File

tests/src/Functional/GoogleAnalyticsUserFieldsTest.php, line 58

Class

GoogleAnalyticsUserFieldsTest
Test user fields functionality of Google Analytics module.

Namespace

Drupal\Tests\google_analytics\Functional

Code

public function testGoogleAnalyticsUserFields() {
  $ua_code = 'UA-123456-1';
  $this
    ->config('google_analytics.settings')
    ->set('account', $ua_code)
    ->save();

  // Check if the pseudo field is shown on account forms.
  $this
    ->drupalGet('admin/config/people/accounts/form-display');
  $this
    ->assertResponse(200);
  $this
    ->assertRaw($this
    ->t('Google Analytics settings'));

  // No customization allowed.
  $this
    ->config('google_analytics.settings')
    ->set('visibility.user_account_mode', 0)
    ->save();
  $this
    ->drupalGet('user/' . $this->adminUser
    ->id() . '/edit');
  $this
    ->assertResponse(200);
  $this
    ->assertNoRaw($this
    ->t('Google Analytics settings'));

  // Tracking on by default, users with opt-in or out of tracking permission
  // can opt out.
  $this
    ->config('google_analytics.settings')
    ->set('visibility.user_account_mode', 1)
    ->save();
  $this
    ->drupalGet('user/' . $this->adminUser
    ->id() . '/edit');
  $this
    ->assertResponse(200);
  $this
    ->assertRaw($this
    ->t('Users are tracked by default, but you are able to opt out.'));

  // Tracking off by default, users with opt-in or out of tracking permission
  // can opt in.
  $this
    ->config('google_analytics.settings')
    ->set('visibility.user_account_mode', 2)
    ->save();
  $this
    ->drupalGet('user/' . $this->adminUser
    ->id() . '/edit');
  $this
    ->assertResponse(200);
  $this
    ->assertRaw($this
    ->t('Users are <em>not</em> tracked by default, but you are able to opt in.'));
}