If Color constructor is passed a value > 0xFFFFFFFF, Sky crashes

We now ensure the color is <= 0xFFFFFFFF.

Fixes #245

R=ianh@google.com

Review URL: https://codereview.chromium.org/1179413008.
This commit is contained in:
Adam Barth
2015-06-18 10:32:26 -07:00
parent 6ccd43f39b
commit 548c2b873b
2 changed files with 43 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
CONSOLE: unittest-suite-wait-for-done
CONSOLE: PASS: paint set to black
CONSOLE: PASS: color created with out of bounds value
CONSOLE: PASS: color created with wildly out of bounds value
CONSOLE:
CONSOLE: All 3 tests passed.
CONSOLE: unittest-suite-success
DONE

View File

@@ -0,0 +1,35 @@
import 'dart:sky' as sky;
import '../resources/third_party/unittest/unittest.dart';
import '../resources/unit.dart';
void main() {
initUnit();
test("paint set to black", () {
sky.Color c = new sky.Color(0x00000000);
sky.Paint p = new sky.Paint();
p.color = c;
expect(c.toString(), equals('Color(0x00000000)'));
});
test("color created with out of bounds value", () {
try {
sky.Color c = new sky.Color(0x100 << 24);
sky.Paint p = new sky.Paint();
p.color = c;
} catch (e) {
expect(e != null, equals(true));
}
});
test("color created with wildly out of bounds value", () {
try {
sky.Color c = new sky.Color(1 << 1000000);
sky.Paint p = new sky.Paint();
p.color = c;
} catch (e) {
expect(e != null, equals(true));
}
});
}