333
334
EXPECT_TRUE(StatsConfigUtil::IsEnabled());
336
TEST(StatsConfigUtilTestWinDevChannel, SetEnabledNeverFailsForRunLevelMedium) {
337
TEST_F(StatsConfigUtilTestWin, SetEnabledForRunLevelHighInDevChannel) {
338
// In dev channel, StatsConfigUtil::SetEnabled always returns true.
339
RegistryEmulator<__COUNTER__> test;
340
test.SetRunLevel(kRunLevelHigh);
343
test.ClearUsagestatsValue();
344
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
345
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
346
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
347
test.GetUsagestatsValue(kHKLM_ClientState, &value);
349
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
351
test.ClearUsagestatsValue();
352
EXPECT_TRUE(StatsConfigUtil::SetEnabled(true));
353
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
354
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
355
test.GetUsagestatsValue(kHKLM_ClientState, &value);
357
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
359
test.ClearUsagestatsValue();
360
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 0); // disable usagestats
361
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
362
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
363
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
364
test.GetUsagestatsValue(kHKLM_ClientState, &value);
366
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium)); // removed
368
test.ClearUsagestatsValue();
369
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 1); // enable usagestats
370
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
371
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
372
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
373
test.GetUsagestatsValue(kHKLM_ClientState, &value);
375
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium)); // removed
378
TEST_F(StatsConfigUtilTestWin, SetEnabledForRunLevelMediumInDevChannel) {
379
// In dev channel, StatsConfigUtil::SetEnabled always returns true.
380
RegistryEmulator<__COUNTER__> test;
381
test.SetRunLevel(kRunLevelMedium);
384
test.ClearUsagestatsValue();
385
EXPECT_TRUE(StatsConfigUtil::SetEnabled(true));
386
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
387
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
388
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
390
test.ClearUsagestatsValue();
391
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 1);
392
EXPECT_TRUE(StatsConfigUtil::SetEnabled(true));
393
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
394
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
395
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
396
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
399
test.ClearUsagestatsValue();
400
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 0);
401
EXPECT_TRUE(StatsConfigUtil::SetEnabled(true));
402
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
403
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
404
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
405
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
408
test.ClearUsagestatsValue();
409
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
410
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
411
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
412
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
414
test.ClearUsagestatsValue();
415
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 1);
416
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
417
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
418
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
419
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
420
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
423
test.ClearUsagestatsValue();
424
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 0);
425
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
426
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
427
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
428
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
429
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
433
TEST_F(StatsConfigUtilTestWin, SetEnabledForRunLevelLowInDevChannel) {
434
// In dev channel, StatsConfigUtil::SetEnabled always returns true.
435
RegistryEmulator<__COUNTER__> test;
436
test.SetRunLevel(kRunLevelLow);
439
test.ClearUsagestatsValue();
440
EXPECT_TRUE(StatsConfigUtil::SetEnabled(true));
441
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
442
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
443
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
445
test.ClearUsagestatsValue();
446
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 1);
447
EXPECT_TRUE(StatsConfigUtil::SetEnabled(true));
448
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
449
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
450
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
451
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
454
test.ClearUsagestatsValue();
455
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 0);
456
EXPECT_TRUE(StatsConfigUtil::SetEnabled(true));
457
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
458
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
459
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
460
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
463
test.ClearUsagestatsValue();
464
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
465
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
466
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
467
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
469
test.ClearUsagestatsValue();
470
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 1);
471
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
472
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
473
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
474
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
475
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
478
test.ClearUsagestatsValue();
479
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 0);
480
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
481
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
482
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
483
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
484
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
488
TEST_F(StatsConfigUtilTestWin, SetEnabledNeverFailsForRunLevelMedium) {
337
489
// In dev channel, StatsConfigUtil::SetEnabled does not update the
338
490
// the registry but always returns true.
339
491
RegistryEmulator<__COUNTER__> test;
353
505
#endif // CHANNEL_DEV
355
507
#if !defined(CHANNEL_DEV)
356
TEST(StatsConfigUtilTestWinNonDev, SetEnabledForRunLevelHigh) {
508
TEST_F(StatsConfigUtilTestWin, SetEnabledForRunLevelHigh) {
357
509
// In beta and stable channel, StatsConfigUtil::SetEnabled requires
358
510
// sufficient rights.
359
511
RegistryEmulator<__COUNTER__> test;
360
512
test.SetRunLevel(kRunLevelHigh);
362
515
// Check if SetEnabled(true) works as expected.
363
EXPECT_TRUE(StatsConfigUtil::SetEnabled(true));
364
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
365
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
367
test.GetUsagestatsValue(kHKLM_ClientState, &value);
369
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
371
// Check if SetEnabled(false) works as expected.
372
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
373
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
374
test.GetUsagestatsValue(kHKLM_ClientState, &value);
516
test.ClearUsagestatsValue();
517
EXPECT_TRUE(StatsConfigUtil::SetEnabled(true));
518
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
519
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
520
test.GetUsagestatsValue(kHKLM_ClientState, &value);
522
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
524
// Check if SetEnabled(true) merges kHKLM_ClientStateMedium.
525
test.ClearUsagestatsValue();
526
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 1);
527
EXPECT_TRUE(StatsConfigUtil::SetEnabled(true));
528
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
529
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
530
test.GetUsagestatsValue(kHKLM_ClientState, &value);
532
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
534
test.ClearUsagestatsValue();
535
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 0);
536
EXPECT_TRUE(StatsConfigUtil::SetEnabled(true));
537
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
538
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
539
test.GetUsagestatsValue(kHKLM_ClientState, &value);
541
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
543
// Check if SetEnabled(false) works as expected.
544
test.ClearUsagestatsValue();
545
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
546
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
547
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
548
test.GetUsagestatsValue(kHKLM_ClientState, &value);
550
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
552
// Check if SetEnabled(false) works as expected.
553
test.ClearUsagestatsValue();
554
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 1);
555
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
556
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
557
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
558
test.GetUsagestatsValue(kHKLM_ClientState, &value);
560
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
562
test.ClearUsagestatsValue();
563
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 0);
564
EXPECT_TRUE(StatsConfigUtil::SetEnabled(false));
565
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
566
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientState));
567
test.GetUsagestatsValue(kHKLM_ClientState, &value);
569
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
378
TEST(StatsConfigUtilTestWinNonDev, SetEnabledForRunLevelMedium) {
572
TEST_F(StatsConfigUtilTestWin, SetEnabledForRunLevelMedium) {
379
573
// In beta and stable channels, StatsConfigUtil::SetEnabled requires
380
574
// sufficient rights.
381
575
RegistryEmulator<__COUNTER__> test;
383
576
test.SetRunLevel(kRunLevelMedium);
384
// Check if SetEnabled(true) fails as expected.
385
EXPECT_FALSE(StatsConfigUtil::SetEnabled(true));
386
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
387
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
388
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
579
test.ClearUsagestatsValue();
580
EXPECT_FALSE(StatsConfigUtil::SetEnabled(true));
581
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
582
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
583
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
585
test.ClearUsagestatsValue();
586
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 1);
587
EXPECT_FALSE(StatsConfigUtil::SetEnabled(true));
588
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
589
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
590
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
591
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
594
test.ClearUsagestatsValue();
595
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 0);
596
EXPECT_FALSE(StatsConfigUtil::SetEnabled(true));
597
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
598
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
599
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
600
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
603
test.ClearUsagestatsValue();
604
EXPECT_FALSE(StatsConfigUtil::SetEnabled(false));
605
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
606
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
607
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
609
test.ClearUsagestatsValue();
610
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 1);
611
EXPECT_FALSE(StatsConfigUtil::SetEnabled(false));
612
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
613
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
614
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
615
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
618
test.ClearUsagestatsValue();
619
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 0);
620
EXPECT_FALSE(StatsConfigUtil::SetEnabled(false));
621
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
622
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
623
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
624
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
391
TEST(StatsConfigUtilTestWinNonDev, SetEnabledForRunLevelLow) {
628
TEST_F(StatsConfigUtilTestWin, SetEnabledForRunLevelLow) {
392
629
// In beta and stable channels, StatsConfigUtil::SetEnabled requires
393
630
// sufficient rights.
394
631
RegistryEmulator<__COUNTER__> test;
396
632
test.SetRunLevel(kRunLevelLow);
397
635
// Check if SetEnabled(true) fails as expected.
398
EXPECT_FALSE(StatsConfigUtil::SetEnabled(true));
399
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
400
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
401
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
636
test.ClearUsagestatsValue();
637
EXPECT_FALSE(StatsConfigUtil::SetEnabled(true));
638
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
639
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
640
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
642
// Check if SetEnabled(false) fails as expected.
643
test.ClearUsagestatsValue();
644
EXPECT_FALSE(StatsConfigUtil::SetEnabled(false));
645
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
646
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
647
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
649
test.ClearUsagestatsValue();
650
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 1);
651
EXPECT_FALSE(StatsConfigUtil::SetEnabled(true));
652
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
653
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
654
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
655
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
658
test.ClearUsagestatsValue();
659
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 0);
660
EXPECT_FALSE(StatsConfigUtil::SetEnabled(true));
661
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
662
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
663
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
664
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
667
test.ClearUsagestatsValue();
668
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 1);
669
EXPECT_FALSE(StatsConfigUtil::SetEnabled(false));
670
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
671
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
672
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
673
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
676
test.ClearUsagestatsValue();
677
test.SetUsagestatsValue(kHKLM_ClientStateMedium, 0);
678
EXPECT_FALSE(StatsConfigUtil::SetEnabled(false));
679
EXPECT_FALSE(test.HasUsagestatsValue(kHKCU_ClientState));
680
EXPECT_FALSE(test.HasUsagestatsValue(kHKLM_ClientState));
681
EXPECT_TRUE(test.HasUsagestatsValue(kHKLM_ClientStateMedium));
682
test.GetUsagestatsValue(kHKLM_ClientStateMedium, &value);
404
TEST(StatsConfigUtilTestWinNonDev, IsEnabled) {
686
TEST_F(StatsConfigUtilTestWin, IsEnabled) {
405
687
RegistryEmulator<__COUNTER__> test;
406
688
test.SetRunLevel(kRunLevelHigh);