Run tests on windows (#142)

Use ascii glyphs on all OSes in tests.
diff --git a/.github/workflows/test-package.yml b/.github/workflows/test-package.yml
index e47bf66..09e10b0 100644
--- a/.github/workflows/test-package.yml
+++ b/.github/workflows/test-package.yml
@@ -46,7 +46,7 @@
       fail-fast: false
       matrix:
         # Add macos-latest and/or windows-latest if relevant for this package.
-        os: [ubuntu-latest]
+        os: [ubuntu-latest, windows-latest]
         sdk: [2.12.0, dev]
     steps:
       - uses: actions/checkout@v2
diff --git a/test/error_test.dart b/test/error_test.dart
index 5b211c2..b6be913 100644
--- a/test/error_test.dart
+++ b/test/error_test.dart
@@ -6,6 +6,7 @@
 
 import 'package:csslib/src/messages.dart';
 import 'package:test/test.dart';
+import 'package:term_glyph/term_glyph.dart' as glyph;
 
 import 'testing.dart';
 
@@ -19,12 +20,12 @@
   var stylesheet = parseCss(input, errors: errors);
 
   expect(errors.isEmpty, false);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 24: Unknown property value bolder
-  ╷
-1 │ .foobar { font-weight: bolder; }
-  │                        ^^^^^^
-  ╵''');
+  ,
+1 | .foobar { font-weight: bolder; }
+  |                        ^^^^^^
+  \'''');
 
   expect(prettyPrint(stylesheet), r'''
 .foobar {
@@ -37,12 +38,12 @@
   stylesheet = parseCss(input, errors: errors..clear());
 
   expect(errors.isEmpty, false);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 24: Unknown property value lighter
-  ╷
-1 │ .foobar { font-weight: lighter; }
-  │                        ^^^^^^^
-  ╵''');
+  ,
+1 | .foobar { font-weight: lighter; }
+  |                        ^^^^^^^
+  \'''');
   expect(prettyPrint(stylesheet), r'''
 .foobar {
   font-weight: lighter;
@@ -54,12 +55,12 @@
   stylesheet = parseCss(input, errors: errors..clear());
 
   expect(errors.isEmpty, false);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 24: Unknown property value inherit
-  ╷
-1 │ .foobar { font-weight: inherit; }
-  │                        ^^^^^^^
-  ╵''');
+  ,
+1 | .foobar { font-weight: inherit; }
+  |                        ^^^^^^^
+  \'''');
   expect(prettyPrint(stylesheet), r'''
 .foobar {
   font-weight: inherit;
@@ -76,12 +77,12 @@
   var stylesheet = parseCss(input, errors: errors);
 
   expect(errors.isEmpty, false);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 24: Unexpected value for line-height
-  ╷
-1 │ .foobar { line-height: 120%; }
-  │                        ^^^
-  ╵''');
+  ,
+1 | .foobar { line-height: 120%; }
+  |                        ^^^
+  \'''');
   expect(prettyPrint(stylesheet), r'''
 .foobar {
   line-height: 120%;
@@ -93,12 +94,12 @@
   stylesheet = parseCss(input, errors: errors..clear());
 
   expect(errors.isEmpty, false);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 24: Unexpected unit for line-height
-  ╷
-1 │ .foobar { line-height: 20cm; }
-  │                        ^^
-  ╵''');
+  ,
+1 | .foobar { line-height: 20cm; }
+  |                        ^^
+  \'''');
   expect(prettyPrint(stylesheet), r'''
 .foobar {
   line-height: 20cm;
@@ -110,12 +111,12 @@
   stylesheet = parseCss(input, errors: errors..clear());
 
   expect(errors.isEmpty, false);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 24: Unknown property value inherit
-  ╷
-1 │ .foobar { line-height: inherit; }
-  │                        ^^^^^^^
-  ╵''');
+  ,
+1 | .foobar { line-height: inherit; }
+  |                        ^^^^^^^
+  \'''');
   expect(prettyPrint(stylesheet), r'''
 .foobar {
   line-height: inherit;
@@ -131,24 +132,24 @@
   parseCss(input, errors: errors);
 
   expect(errors, isNotEmpty);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 1: Not a valid ID selector expected #id
-  ╷
-1 │ # foo { color: #ff00ff; }
-  │ ^
-  ╵''');
+  ,
+1 | # foo { color: #ff00ff; }
+  | ^
+  \'''');
 
   // Invalid class selector.
   input = '. foo { color: #ff00ff; }';
   parseCss(input, errors: errors..clear());
 
   expect(errors, isNotEmpty);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 1: Not a valid class selector expected .className
-  ╷
-1 │ . foo { color: #ff00ff; }
-  │ ^
-  ╵''');
+  ,
+1 | . foo { color: #ff00ff; }
+  | ^
+  \'''');
 }
 
 /// Test for bad hex values.
@@ -160,12 +161,12 @@
   var stylesheet = parseCss(input, errors: errors);
 
   expect(errors.isEmpty, false);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 18: Bad hex number
-  ╷
-1 │ .foobar { color: #AH787; }
-  │                  ^^^^^^
-  ╵''');
+  ,
+1 | .foobar { color: #AH787; }
+  |                  ^^^^^^
+  \'''');
   expect(prettyPrint(stylesheet), r'''
 .foobar {
   color: #AH787;
@@ -176,12 +177,12 @@
   stylesheet = parseCss(input, errors: errors..clear());
 
   expect(errors.isEmpty, false);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 18: Unknown property value redder
-  ╷
-1 │ .foobar { color: redder; }
-  │                  ^^^^^^
-  ╵''');
+  ,
+1 | .foobar { color: redder; }
+  |                  ^^^^^^
+  \'''');
 
   expect(prettyPrint(stylesheet), r'''
 .foobar {
@@ -193,12 +194,12 @@
   stylesheet = parseCss(input, errors: errors..clear());
 
   expect(errors.isEmpty, false);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 18: Expected hex number
-  ╷
-1 │ .foobar { color: # ffffff; }
-  │                  ^
-  ╵''');
+  ,
+1 | .foobar { color: # ffffff; }
+  |                  ^
+  \'''');
 
   expect(prettyPrint(stylesheet), r'''
 .foobar {
@@ -210,12 +211,12 @@
   stylesheet = parseCss(input, errors: errors..clear());
 
   expect(errors.isEmpty, false);
-  expect(errors[0].toString(), r'''
+  expect(errors[0].toString(), '''
 error on line 1, column 18: Expected hex number
-  ╷
-1 │ .foobar { color: # 123fff; }
-  │                  ^
-  ╵''');
+  ,
+1 | .foobar { color: # 123fff; }
+  |                  ^
+  \'''');
 
   // Formating is off with an extra space.  However, the entire value is bad
   // and isn't processed anyway.
@@ -240,10 +241,10 @@
       errors[0].toString(),
       'error on line 3, column 20: unicode first range can not be greater than '
       'last\n'
-      '  ╷\n'
-      '3 │   unicode-range: U+400-200;\n'
-      '  │                    ^^^^^^^\n'
-      '  ╵');
+      '  ,\n'
+      '3 |   unicode-range: U+400-200;\n'
+      '  |                    ^^^^^^^\n'
+      '  \'');
 
   final input2 = '''
 @font-face {
@@ -257,10 +258,10 @@
   expect(
       errors[0].toString(),
       'error on line 3, column 20: unicode range must be less than 10FFFF\n'
-      '  ╷\n'
-      '3 │   unicode-range: U+12FFFF;\n'
-      '  │                    ^^^^^^\n'
-      '  ╵');
+      '  ,\n'
+      '3 |   unicode-range: U+12FFFF;\n'
+      '  |                    ^^^^^^\n'
+      '  \'');
 }
 
 void testBadNesting() {
@@ -350,6 +351,7 @@
 }
 
 void main() {
+  glyph.ascii = true;
   test('font-weight value errors', testUnsupportedFontWeights);
   test('line-height value errors', testUnsupportedLineHeights);
   test('bad selectors', testBadSelectors);
diff --git a/test/selector_test.dart b/test/selector_test.dart
index 93c8483..ae4dbbd 100644
--- a/test/selector_test.dart
+++ b/test/selector_test.dart
@@ -5,6 +5,7 @@
 library selector_test;
 
 import 'package:csslib/parser.dart';
+import 'package:term_glyph/term_glyph.dart' as glyph;
 import 'package:test/test.dart';
 
 import 'testing.dart';
@@ -71,22 +72,23 @@
       errors[0].toString(),
       'error on line 1, column 9: name must start with a alpha character, but '
       'found a number\n'
-      '  ╷\n'
-      '1 │ .foobar .1a-story .xyzzy\n'
-      '  │         ^^\n'
-      '  ╵');
+      '  ,\n'
+      '1 | .foobar .1a-story .xyzzy\n'
+      '  |         ^^\n'
+      '  \'');
 
   selector(':host()', errors: errors..clear());
   expect(
       errors.first.toString(),
       'error on line 1, column 7: expected a selector argument, but found )\n'
-      '  ╷\n'
-      '1 │ :host()\n'
-      '  │       ^\n'
-      '  ╵');
+      '  ,\n'
+      '1 | :host()\n'
+      '  |       ^\n'
+      '  \'');
 }
 
 void main() {
+  glyph.ascii = true;
   test('Valid Selectors', testSelectorSuccesses);
   test('Invalid Selectors', testSelectorFailures);
 }
diff --git a/test/var_test.dart b/test/var_test.dart
index 923d121..079955f 100644
--- a/test/var_test.dart
+++ b/test/var_test.dart
@@ -5,6 +5,7 @@
 library var_test;
 
 import 'package:csslib/src/messages.dart';
+import 'package:term_glyph/term_glyph.dart' as glyph;
 import 'package:test/test.dart';
 
 import 'testing.dart';
@@ -404,40 +405,40 @@
 
   var errorStrings = [
     'error on line 5, column 14: Variable is not defined.\n'
-        '  ╷\n'
-        '5 │   var-a: var(b);\n'
-        '  │              ^^\n'
-        '  ╵',
+        '  ,\n'
+        '5 |   var-a: var(b);\n'
+        '  |              ^^\n'
+        '  \'',
     'error on line 6, column 14: Variable is not defined.\n'
-        '  ╷\n'
-        '6 │   var-b: var(c);\n'
-        '  │              ^^\n'
-        '  ╵',
+        '  ,\n'
+        '6 |   var-b: var(c);\n'
+        '  |              ^^\n'
+        '  \'',
     'error on line 9, column 16: Variable is not defined.\n'
-        '  ╷\n'
-        '9 │   var-one: var(two);\n'
-        '  │                ^^^^\n'
-        '  ╵',
+        '  ,\n'
+        '9 |   var-one: var(two);\n'
+        '  |                ^^^^\n'
+        '  \'',
     'error on line 12, column 17: Variable is not defined.\n'
-        '   ╷\n'
-        '12 │   var-four: var(five);\n'
-        '   │                 ^^^^^\n'
-        '   ╵',
+        '   ,\n'
+        '12 |   var-four: var(five);\n'
+        '   |                 ^^^^^\n'
+        '   \'',
     'error on line 13, column 17: Variable is not defined.\n'
-        '   ╷\n'
-        '13 │   var-five: var(six);\n'
-        '   │                 ^^^^\n'
-        '   ╵',
+        '   ,\n'
+        '13 |   var-five: var(six);\n'
+        '   |                 ^^^^\n'
+        '   \'',
     'error on line 16, column 18: Variable is not defined.\n'
-        '   ╷\n'
-        '16 │   var-def-1: var(def-2);\n'
-        '   │                  ^^^^^^\n'
-        '   ╵',
+        '   ,\n'
+        '16 |   var-def-1: var(def-2);\n'
+        '   |                  ^^^^^^\n'
+        '   \'',
     'error on line 17, column 18: Variable is not defined.\n'
-        '   ╷\n'
-        '17 │   var-def-2: var(def-3);\n'
-        '   │                  ^^^^^^\n'
-        '   ╵',
+        '   ,\n'
+        '17 |   var-def-2: var(def-3);\n'
+        '   |                  ^^^^^^\n'
+        '   \'',
   ];
 
   var generated = r'''
@@ -943,6 +944,7 @@
 }
 
 void main() {
+  glyph.ascii = true;
   test('Simple var', simpleVar);
   test('Expressions var', expressionsVar);
   test('Default value in var()', defaultVar);