Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(455)

Side by Side Diff: test/mixin_test.dart

Issue 1832993003: Fix all strong mode errors and warnings. (Closed) Base URL: https://github.com/dart-lang/csslib.git@master
Patch Set: Move type. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/extend_test.dart ('k') | test/nested_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library mixin_test; 5 library mixin_test;
6 6
7 import 'package:csslib/src/messages.dart';
7 import 'package:test/test.dart'; 8 import 'package:test/test.dart';
8 9
9 import 'testing.dart'; 10 import 'testing.dart';
10 11
11 compileAndValidate(String input, String generated) { 12 compileAndValidate(String input, String generated) {
12 var errors = []; 13 var errors = <Message>[];
13 var stylesheet = compileCss(input, errors: errors, opts: options); 14 var stylesheet = compileCss(input, errors: errors, opts: options);
14 expect(stylesheet != null, true); 15 expect(stylesheet != null, true);
15 expect(errors.isEmpty, true, reason: errors.toString()); 16 expect(errors.isEmpty, true, reason: errors.toString());
16 expect(prettyPrint(stylesheet), generated); 17 expect(prettyPrint(stylesheet), generated);
17 } 18 }
18 19
19 compilePolyfillAndValidate(String input, String generated) { 20 compilePolyfillAndValidate(String input, String generated) {
20 var errors = []; 21 var errors = <Message>[];
21 var stylesheet = polyFillCompileCss(input, errors: errors, opts: options); 22 var stylesheet = polyFillCompileCss(input, errors: errors, opts: options);
22 expect(stylesheet != null, true); 23 expect(stylesheet != null, true);
23 expect(errors.isEmpty, true, reason: errors.toString()); 24 expect(errors.isEmpty, true, reason: errors.toString());
24 expect(prettyPrint(stylesheet), generated); 25 expect(prettyPrint(stylesheet), generated);
25 } 26 }
26 27
27 void topLevelMixin() { 28 void topLevelMixin() {
28 compileAndValidate(r''' 29 compileAndValidate(r'''
29 @mixin silly-links { 30 @mixin silly-links {
30 a { 31 a {
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 @include colors(@values); 407 @include colors(@values);
407 } 408 }
408 ''', r'''.primary { 409 ''', r'''.primary {
409 color: #f00; 410 color: #f00;
410 background-color: #0f0; 411 background-color: #0f0;
411 border-color: #00f; 412 border-color: #00f;
412 }'''); 413 }''');
413 } 414 }
414 415
415 void badDeclarationInclude() { 416 void badDeclarationInclude() {
416 final errors = []; 417 final errors = <Message>[];
417 final input = r''' 418 final input = r'''
418 @mixin a { 419 @mixin a {
419 #foo-id { 420 #foo-id {
420 color: red; 421 color: red;
421 } 422 }
422 } 423 }
423 @mixin b { 424 @mixin b {
424 span { 425 span {
425 border: 2px dashed red; 426 border: 2px dashed red;
426 @include a; 427 @include a;
427 } 428 }
428 } 429 }
429 @include b; 430 @include b;
430 '''; 431 ''';
431 432
432 var stylesheet = compileCss(input, errors: errors, opts: options); 433 var stylesheet = compileCss(input, errors: errors, opts: options);
433 434
434 expect(stylesheet != null, true); 435 expect(stylesheet != null, true);
435 expect(errors.isNotEmpty, true); 436 expect(errors.isNotEmpty, true);
436 expect(errors.length, 1, reason: errors.toString()); 437 expect(errors.length, 1, reason: errors.toString());
437 var error = errors[0]; 438 var error = errors[0];
438 expect(error.message, 'Using top-level mixin a as a declaration'); 439 expect(error.message, 'Using top-level mixin a as a declaration');
439 expect(error.span.start.line, 8); 440 expect(error.span.start.line, 8);
440 expect(error.span.end.offset, 105); 441 expect(error.span.end.offset, 105);
441 } 442 }
442 443
443 void badTopInclude() { 444 void badTopInclude() {
444 final errors = []; 445 final errors = <Message>[];
445 final input = r''' 446 final input = r'''
446 @mixin b { 447 @mixin b {
447 color: red; 448 color: red;
448 } 449 }
449 450
450 @mixin a { 451 @mixin a {
451 span { 452 span {
452 border: 2px dashed red; 453 border: 2px dashed red;
453 } 454 }
454 @include b; 455 @include b;
455 } 456 }
456 457
457 @include a; 458 @include a;
458 '''; 459 ''';
459 460
460 var stylesheet = compileCss(input, errors: errors, opts: options); 461 var stylesheet = compileCss(input, errors: errors, opts: options);
461 expect(stylesheet != null, true); 462 expect(stylesheet != null, true);
462 expect(errors.length, 1, reason: errors.toString()); 463 expect(errors.length, 1, reason: errors.toString());
463 var error = errors[0]; 464 var error = errors[0];
464 expect(error.message, 'Using declaration mixin b as top-level mixin'); 465 expect(error.message, 'Using declaration mixin b as top-level mixin');
465 expect(error.span.start.line, 8); 466 expect(error.span.start.line, 8);
466 expect(error.span.end.offset, 90); 467 expect(error.span.end.offset, 90);
467 } 468 }
468 469
469 void emptyMixin() { 470 void emptyMixin() {
470 final errors = []; 471 final errors = <Message>[];
471 final input = r''' 472 final input = r'''
472 @mixin a { 473 @mixin a {
473 } 474 }
474 @mixin b { 475 @mixin b {
475 border: 2px dashed red; 476 border: 2px dashed red;
476 @include a; 477 @include a;
477 } 478 }
478 div { 479 div {
479 @include b; 480 @include b;
480 } 481 }
481 '''; 482 ''';
482 483
483 var generated = r'''div { 484 var generated = r'''div {
484 border: 2px dashed #f00; 485 border: 2px dashed #f00;
485 }'''; 486 }''';
486 487
487 var stylesheet = compileCss(input, errors: errors, opts: options); 488 var stylesheet = compileCss(input, errors: errors, opts: options);
488 489
489 expect(stylesheet != null, true); 490 expect(stylesheet != null, true);
490 expect(errors.isEmpty, true, reason: errors.toString()); 491 expect(errors.isEmpty, true, reason: errors.toString());
491 expect(prettyPrint(stylesheet), generated); 492 expect(prettyPrint(stylesheet), generated);
492 } 493 }
493 494
494 void undefinedTopLevel() { 495 void undefinedTopLevel() {
495 final errors = []; 496 final errors = <Message>[];
496 final input = r''' 497 final input = r'''
497 @mixin a { 498 @mixin a {
498 @include b; 499 @include b;
499 } 500 }
500 @mixin b { 501 @mixin b {
501 span { 502 span {
502 border: 2px dashed red; 503 border: 2px dashed red;
503 } 504 }
504 @include a; 505 @include a;
505 } 506 }
506 507
507 @include b; 508 @include b;
508 509
509 '''; 510 ''';
510 511
511 var stylesheet = compileCss(input, errors: errors, opts: options); 512 var stylesheet = compileCss(input, errors: errors, opts: options);
512 513
513 expect(stylesheet != null, true); 514 expect(stylesheet != null, true);
514 expect(errors.isNotEmpty, true); 515 expect(errors.isNotEmpty, true);
515 expect(errors.length, 1, reason: errors.toString()); 516 expect(errors.length, 1, reason: errors.toString());
516 var error = errors[0]; 517 var error = errors[0];
517 expect(error.message, 'Undefined mixin b'); 518 expect(error.message, 'Undefined mixin b');
518 expect(error.span.start.line, 1); 519 expect(error.span.start.line, 1);
519 expect(error.span.start.offset, 14); 520 expect(error.span.start.offset, 14);
520 } 521 }
521 522
522 void undefinedDeclaration() { 523 void undefinedDeclaration() {
523 final errors = []; 524 final errors = <Message>[];
524 final input = r''' 525 final input = r'''
525 @mixin a { 526 @mixin a {
526 @include b; 527 @include b;
527 } 528 }
528 @mixin b { 529 @mixin b {
529 border: 2px dashed red; 530 border: 2px dashed red;
530 @include a; 531 @include a;
531 } 532 }
532 div { 533 div {
533 @include b; 534 @include b;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 572
572 foo { 573 foo {
573 @include a; 574 @include a;
574 @include a 575 @include a
575 } 576 }
576 ''', r'''foo { 577 ''', r'''foo {
577 color: #f00; 578 color: #f00;
578 color: #f00; 579 color: #f00;
579 }'''); 580 }''');
580 581
581 var errors = []; 582 var errors = <Message>[];
582 var input = r''' 583 var input = r'''
583 @mixin a { 584 @mixin a {
584 foo { color: red } 585 foo { color: red }
585 } 586 }
586 587
587 @mixin b { 588 @mixin b {
588 @include a 589 @include a
589 @include a 590 @include a
590 } 591 }
591 592
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 test('multiple args and var decls as args', mixinManyArgs); 651 test('multiple args and var decls as args', mixinManyArgs);
651 }); 652 });
652 653
653 group('Mixin warnings', () { 654 group('Mixin warnings', () {
654 test('undefined top-level', undefinedTopLevel); 655 test('undefined top-level', undefinedTopLevel);
655 test('undefined declaration', undefinedDeclaration); 656 test('undefined declaration', undefinedDeclaration);
656 test('detect bad top-level as declaration', badDeclarationInclude); 657 test('detect bad top-level as declaration', badDeclarationInclude);
657 test('detect bad declaration as top-level', badTopInclude); 658 test('detect bad declaration as top-level', badTopInclude);
658 }); 659 });
659 } 660 }
OLDNEW
« no previous file with comments | « test/extend_test.dart ('k') | test/nested_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698