Skip to content

Commit

Permalink
opt-out telemetry; fixes #16131
Browse files Browse the repository at this point in the history
  • Loading branch information
kieferrm committed Dec 2, 2016
1 parent dce380b commit c082cc5
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 13 deletions.
4 changes: 2 additions & 2 deletions src/vs/platform/telemetry/common/telemetryService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,8 @@ export class TelemetryService implements ITelemetryService {
}

publicLog(eventName: string, data?: any): TPromise<any> {
// don't send events when the user is optout unless the event is the opt{in|out} signal
if (!this._userOptIn && eventName !== 'optInStatus') {
// don't send events when the user is optout
if (!this._userOptIn) {
return TPromise.as(undefined);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -639,27 +639,22 @@ suite('TelemetryService', () => {
});
}));

test('Telemetry Service sends events when enableTelemetry is on even user optin is on', sinon.test(function () {
test('Telemetry Service does not sent optInStatus when user opted out', sinon.test(function () {
let testAppender = new TestTelemetryAppender();
let service = new TelemetryService({ userOptIn: true, appender: testAppender }, undefined);
let service = new TelemetryService({ userOptIn: false, appender: testAppender }, undefined);

return service.publicLog('testEvent').then(() => {
assert.equal(testAppender.getEventsCount(), 1);
return service.publicLog(optInStatusEventName, { optIn: false }).then(() => {
assert.equal(testAppender.getEventsCount(), 0);
service.dispose();
});
}));

test('Telemetry Service allows optin friendly events', sinon.test(function () {
test('Telemetry Service sends events when enableTelemetry is on even user optin is on', sinon.test(function () {
let testAppender = new TestTelemetryAppender();
let service = new TelemetryService({ userOptIn: false, appender: testAppender }, undefined);
let service = new TelemetryService({ userOptIn: true, appender: testAppender }, undefined);

return service.publicLog('testEvent').then(() => {
assert.equal(testAppender.getEventsCount(), 0);
return service.publicLog(optInStatusEventName, { userOptIn: false });
}).then(() => {
assert.equal(testAppender.getEventsCount(), 1);
assert.equal(testAppender.events[0].eventName, optInStatusEventName);
assert.equal(testAppender.events[0].data.userOptIn, false);
service.dispose();
});
}));
Expand Down

0 comments on commit c082cc5

Please sign in to comment.