From b66553306009b3208dd12ba0f9715243e41968b9 Mon Sep 17 00:00:00 2001 From: Ayush Bherwani Date: Tue, 31 Mar 2020 01:11:03 +0530 Subject: [PATCH] [MediaQueryData] adds assertions to MediaQueryData Constructor (#53003) --- .../flutter/lib/src/widgets/media_query.dart | 16 +- .../test/widgets/media_query_test.dart | 166 ++++++++++++++++++ 2 files changed, 181 insertions(+), 1 deletion(-) diff --git a/packages/flutter/lib/src/widgets/media_query.dart b/packages/flutter/lib/src/widgets/media_query.dart index 580726deac..383f431838 100644 --- a/packages/flutter/lib/src/widgets/media_query.dart +++ b/packages/flutter/lib/src/widgets/media_query.dart @@ -102,7 +102,21 @@ class MediaQueryData { this.highContrast = false, this.disableAnimations = false, this.boldText = false, - }); + }) : assert(size != null), + assert(devicePixelRatio != null), + assert(textScaleFactor != null), + assert(platformBrightness != null), + assert(padding != null), + assert(viewInsets != null), + assert(systemGestureInsets != null), + assert(viewPadding != null), + assert(physicalDepth != null), + assert(alwaysUse24HourFormat != null), + assert(accessibleNavigation != null), + assert(invertColors != null), + assert(highContrast != null), + assert(disableAnimations != null), + assert(boldText != null); /// Creates data for a media query based on the given window. /// diff --git a/packages/flutter/test/widgets/media_query_test.dart b/packages/flutter/test/widgets/media_query_test.dart index b108161f1b..4f290d899b 100644 --- a/packages/flutter/test/widgets/media_query_test.dart +++ b/packages/flutter/test/widgets/media_query_test.dart @@ -564,4 +564,170 @@ void main() { expect(outsideBoldTextOverride, false); expect(insideBoldTextOverride, true); }); + + test('size parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(size: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('size != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('devicePixelRatio parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(devicePixelRatio: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('devicePixelRatio != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('textScaleFactor parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(textScaleFactor: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('textScaleFactor != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('platformBrightness parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(platformBrightness: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('platformBrightness != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('padding parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(padding: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('padding != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('viewInsets parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(viewInsets: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('viewInsets != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('systemGestureInsets parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(systemGestureInsets: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('systemGestureInsets != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('viewPadding parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(viewPadding: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('viewPadding != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('physicalDepth parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(physicalDepth: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('physicalDepth != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('alwaysUse24HourFormat parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(alwaysUse24HourFormat: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('alwaysUse24HourFormat != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('accessibleNavigation parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(accessibleNavigation: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('accessibleNavigation != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('invertColors parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(invertColors: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('invertColors != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('highContrast parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(highContrast: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('highContrast != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('disableAnimations parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(disableAnimations: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('disableAnimations != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + + test('boldText parameter in MediaQueryData cannot be null', () { + try { + MediaQueryData(boldText: null); + } on AssertionError catch (error) { + expect(error.toString(), contains('boldText != null')); + expect(error.toString(), contains('is not true')); + return; + } + fail('The assert was never called when it should have been'); + }); + }