Skip to content

Commit 67e9056

Browse files
committed
AutoScaleDown Tests Update
*Update AutoScaleDown tests to support simplified behavior.
1 parent b654812 commit 67e9056

File tree

3 files changed

+21
-32
lines changed

3 files changed

+21
-32
lines changed

lib/responsive_wrapper.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -867,6 +867,10 @@ List<ResponsiveBreakpointSegment> getBreakpointSegments(
867867
? ResponsiveBreakpointBehavior.AUTOSCALE
868868
: defaultBreakpoint.behavior)));
869869

870+
// A counter to keep track of the actual number of added breakpoints.
871+
// Needed because breakpoints are merged so not every
872+
// for-loop iteration adds a breakpoint segment.
873+
int breakpointCounter = 0;
870874
// Calculate segments from breakpoints.
871875
for (int i = 0; i < breakpointsHolder.length; i++) {
872876
// Convenience variable.
@@ -886,7 +890,7 @@ List<ResponsiveBreakpointSegment> getBreakpointSegments(
886890
// AutoScaleDown needs to override the breakpoint
887891
// interval because responsive calculations are
888892
// performed from 0 - ∞.
889-
int overrideBreakpointIndex = i;
893+
int overrideBreakpointIndex = breakpointCounter;
890894
ResponsiveBreakpointSegment overrideBreakpointSegment =
891895
breakpointSegments[overrideBreakpointIndex];
892896
overrideBreakpointSegment = overrideBreakpointSegment.copyWith(
@@ -921,6 +925,7 @@ List<ResponsiveBreakpointSegment> getBreakpointSegments(
921925
continue;
922926
}
923927
breakpointSegments.add(breakpointSegmentHolder);
928+
breakpointCounter += 1;
924929
}
925930

926931
// Add tags to segments.

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: responsive_framework
22
description: Easily make Flutter apps responsive. Automatically adapt UI to different screen sizes. Responsiveness made simple.
3-
version: 0.0.8
3+
version: 0.0.9
44
homepage: https://codelessly.com
55
repository: https://github.com/Codelessly/ResponsiveFramework
66
issue_tracker: https://github.com/Codelessly/ResponsiveFramework/issues

test/responsive_breakpoint_test.dart

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -386,24 +386,16 @@ void main() {
386386
breakpoint: 0,
387387
segmentType: ResponsiveBreakpointBehavior.AUTOSCALE,
388388
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(450)));
389-
// Split the width between AutoScale and AutoScaleDown
390-
// into two segments.
389+
// Override AutoScale with AutoScaleDown breakpoint value.
391390
expect(
392391
responsiveBreakpointSegments[1],
393392
ResponsiveBreakpointSegment(
394393
breakpoint: 450,
395394
segmentType: ResponsiveBreakpointBehavior.AUTOSCALE,
396-
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(450)));
397-
// Constructed midway breakpoint.
398-
expect(
399-
responsiveBreakpointSegments[2],
400-
ResponsiveBreakpointSegment(
401-
breakpoint: 525,
402-
segmentType: ResponsiveBreakpointBehavior.AUTOSCALEDOWN,
403395
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(600)));
404396
// AutoScale behavior from 600 - ∞.
405397
expect(
406-
responsiveBreakpointSegments[3],
398+
responsiveBreakpointSegments[2],
407399
ResponsiveBreakpointSegment(
408400
breakpoint: 600,
409401
segmentType: ResponsiveBreakpointBehavior.AUTOSCALEDOWN,
@@ -455,34 +447,31 @@ void main() {
455447
breakpoint: 0,
456448
segmentType: ResponsiveBreakpointBehavior.AUTOSCALE,
457449
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(320)));
450+
// AutoScaleDown breakpoint.
458451
expect(
459452
responsiveBreakpointSegments[1],
460453
ResponsiveBreakpointSegment(
461454
breakpoint: 320,
462455
segmentType: ResponsiveBreakpointBehavior.AUTOSCALEDOWN,
463456
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(320)));
457+
// AutoScaleDown from 600.
464458
expect(
465459
responsiveBreakpointSegments[2],
466460
ResponsiveBreakpointSegment(
467461
breakpoint: 450,
468462
segmentType: ResponsiveBreakpointBehavior.AUTOSCALE,
469-
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(450)));
470-
// Constructed midway segment between 450 and 600.
471-
// AutoScaleDown from 600.
472-
expect(
473-
responsiveBreakpointSegments[3],
474-
ResponsiveBreakpointSegment(
475-
breakpoint: 525,
476-
segmentType: ResponsiveBreakpointBehavior.AUTOSCALEDOWN,
477463
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(600)));
464+
// AutoScale from 600 - ∞.
478465
expect(
479-
responsiveBreakpointSegments[4],
466+
responsiveBreakpointSegments[3],
480467
ResponsiveBreakpointSegment(
481468
breakpoint: 600,
482469
segmentType: ResponsiveBreakpointBehavior.AUTOSCALEDOWN,
483470
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(600)));
484471
});
485472
test('AutoScaleDown AutoScale Override', () {
473+
// This test also test correct merge count because the
474+
// first breakpoint is merged with the default breakpoint.
486475
ResponsiveBreakpoint defaultBreakpoint =
487476
ResponsiveBreakpoint.autoScale(450);
488477
List<ResponsiveBreakpoint> responsiveBreakpoints = [
@@ -549,33 +538,28 @@ void main() {
549538
ResponsiveBreakpointSegment(
550539
breakpoint: 420,
551540
segmentType: ResponsiveBreakpointBehavior.AUTOSCALE,
552-
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(420)));
541+
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(450)));
553542
expect(
554543
responsiveBreakpointSegments[5],
555544
ResponsiveBreakpointSegment(
556-
breakpoint: 430.0,
545+
breakpoint: 430,
557546
segmentType: ResponsiveBreakpointBehavior.TAG,
558547
responsiveBreakpoint:
559-
ResponsiveBreakpoint.autoScale(420.0, name: 'DEFAULT')));
548+
ResponsiveBreakpoint.autoScale(450, name: 'DEFAULT')));
560549
expect(
561550
responsiveBreakpointSegments[6],
562-
ResponsiveBreakpointSegment(
563-
breakpoint: 435,
564-
segmentType: ResponsiveBreakpointBehavior.AUTOSCALEDOWN,
565-
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(450)));
566-
expect(
567-
responsiveBreakpointSegments[7],
568551
ResponsiveBreakpointSegment(
569552
breakpoint: 440.0,
570553
segmentType: ResponsiveBreakpointBehavior.TAG,
571554
responsiveBreakpoint:
572-
ResponsiveBreakpoint.autoScale(450.0, name: 'PHONE')));
555+
ResponsiveBreakpoint.autoScale(450, name: 'PHONE')));
573556
expect(
574-
responsiveBreakpointSegments[8],
557+
responsiveBreakpointSegments[7],
575558
ResponsiveBreakpointSegment(
576559
breakpoint: 450,
577560
segmentType: ResponsiveBreakpointBehavior.AUTOSCALEDOWN,
578561
responsiveBreakpoint: ResponsiveBreakpoint.autoScale(450)));
562+
expect(responsiveBreakpointSegments.length, 8);
579563
});
580564
test('AutoScaleDown AutoScaleDown', () {
581565
ResponsiveBreakpoint defaultBreakpoint = ResponsiveBreakpoint.resize(600);

0 commit comments

Comments
 (0)