241 lines
8.6 KiB
PHP
241 lines
8.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Copyright 2022 Google Inc.
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
namespace Google\Analytics\Data\Samples\Tests;
|
|
|
|
use Google\ApiCore\ValidationException;
|
|
use Google\Cloud\TestUtils\TestTrait;
|
|
use PHPUnit\Framework\TestCase;
|
|
use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient;
|
|
|
|
class AnalyticsDataTest extends TestCase
|
|
{
|
|
use TestTrait;
|
|
|
|
public function testRunReport()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testClientFromJsonCredentials()
|
|
{
|
|
$jsonCredentials = self::requireEnv('GOOGLE_APPLICATION_CREDENTIALS');
|
|
$this->runFunctionSnippet('client_from_json_credentials', [$jsonCredentials]);
|
|
|
|
$client = $this->getLastReturnedSnippetValue();
|
|
|
|
$this->assertInstanceOf(BetaAnalyticsDataClient::class, $client);
|
|
|
|
try {
|
|
$this->runFunctionSnippet('client_from_json_credentials', ['does-not-exist.json']);
|
|
$this->fail('Non-existant json credentials should throw exception');
|
|
} catch (ValidationException $ex) {
|
|
$this->assertStringContainsString('does-not-exist.json', $ex->getMessage());
|
|
}
|
|
}
|
|
|
|
public function testGetCommonMetadata()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('get_common_metadata');
|
|
|
|
$this->assertStringContainsString('Dimensions and metrics', $output);
|
|
}
|
|
|
|
public function testGetMetadataByPropertyId()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('get_metadata_by_property_id', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Dimensions and metrics', $output);
|
|
}
|
|
|
|
public function testRunRealtimeReport()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_realtime_report', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunRealtimeReportWithMultipleDimensions()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_realtime_report_with_multiple_dimensions', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunBatchReport()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_batch_report', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Batch report result', $output);
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunPivotReport()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_pivot_report', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunRunRealtimeReportWithMinuteRanges()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_realtime_report_with_minute_ranges', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunRunRealtimeReportWithMultipleMetrics()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_realtime_report_with_multiple_metrics', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithDimensionExcludeFilter()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_dimension_exclude_filter', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithDimensionAndMetricFilters()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_dimension_and_metric_filters', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithDimensionFilter()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_dimension_filter', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithMultipleDimensionFilters()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_multiple_dimension_filters', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithMultipleMetrics()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_multiple_metrics', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithDimensionInListFilter()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_dimension_in_list_filter', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithNamedDateRanges()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_named_date_ranges', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithMultipleDimensions()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_multiple_dimensions', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithDateRanges()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_date_ranges', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithCohorts()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_cohorts', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithAggregations()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_aggregations', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithOrdering()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_ordering', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithPagination()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_pagination', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Report result', $output);
|
|
}
|
|
|
|
public function testRunReportWithPropertyQuota()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_report_with_property_quota', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('Tokens per day quota consumed', $output);
|
|
}
|
|
|
|
public function testRunFunnelReport()
|
|
{
|
|
$propertyId = self::requireEnv('GA_TEST_PROPERTY_ID');
|
|
$output = $this->runFunctionSnippet('run_funnel_report', [$propertyId]);
|
|
|
|
$this->assertStringContainsString('FUNNEL VISUALIZATION', $output);
|
|
$this->assertStringContainsString('FUNNEL TABLE', $output);
|
|
}
|
|
}
|