Add Canvas nullcheck to render function

This commit is contained in:
Marty Oehme 2018-08-25 14:10:56 +02:00
parent 572406b963
commit 4c6dff35c3
3 changed files with 19 additions and 9 deletions

View File

@ -25,8 +25,9 @@ class SimulationComponent implements OnInit {
canvas.context2D.fillRect(0, 0, canvas.width, canvas.height);
canvas.context2D.setFillColorRgb(0, 255, 0);
canvas.context2D.fillText('''
If you see this\n
the app is broken :(
If you see this
the canvas did not load correctly :(
''', canvas.width / 2 - 50, canvas.height / 2);
// engineService.create(canvas);
}

View File

@ -22,7 +22,7 @@ class Engine {
num _updateLag = 0.0;
num _drawLag = 0.0;
final html.CanvasElement canvas;
html.CanvasElement canvas;
Grid _grid = new Grid(GRID_X, GRID_Y);
bool running = false;
@ -43,7 +43,7 @@ class Engine {
}
void clear() {
_grid = new Grid(100, 100);
_grid = new Grid(GRID_X, GRID_Y);
running = false;
}
@ -78,8 +78,7 @@ class Engine {
}
void render([num interp]) {
// print("rendering");
_grid.render(canvas, interp);
if(canvas != null) _grid.render(canvas, interp);
}
void addPattern(

View File

@ -1,12 +1,22 @@
@TestOn('browser')
import 'dart:html';
import 'package:rules_of_living/src/Engine.dart';
import 'package:test/test.dart';
void main() {
test("Engine can be instantiated without canvas", () {
expect(Engine(), isNot(throwsA(anything)));
expect(Engine(), isNot(throwsNoSuchMethodError));
});
test("Engine does not throw errors when calling render directly", () {
Engine sut = new Engine();
// anonymous function necessary since throws can not use functions with args
expect(() => sut.render(), isNot(throwsNoSuchMethodError));
});
test("Engine does not throw errors when processing without attached canvas", () {
Engine sut = new Engine();
// anonymous function necessary since throws can not use functions with args
expect(() => sut.process(1000), isNot(throwsNoSuchMethodError));
});
}