Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions lib/src/auto_size_text.dart
Original file line number Diff line number Diff line change
Expand Up @@ -387,8 +387,12 @@ class _AutoSizeTextState extends State<AutoSizeText> {

wordWrapTextPainter.layout(maxWidth: constraints.maxWidth);

if (wordWrapTextPainter.didExceedMaxLines ||
wordWrapTextPainter.width > constraints.maxWidth) {
final exceeds = wordWrapTextPainter.didExceedMaxLines ||
wordWrapTextPainter.width > constraints.maxWidth;

wordWrapTextPainter.dispose();

if (exceeds) {
return false;
}
}
Expand All @@ -405,9 +409,13 @@ class _AutoSizeTextState extends State<AutoSizeText> {

textPainter.layout(maxWidth: constraints.maxWidth);

return !(textPainter.didExceedMaxLines ||
final fits = !(textPainter.didExceedMaxLines ||
textPainter.height > constraints.maxHeight ||
textPainter.width > constraints.maxWidth);

textPainter.dispose();

return fits;
}

Widget _buildText(double fontSize, TextStyle style, int? maxLines) {
Expand Down
6 changes: 5 additions & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,8 @@ dependencies:
dev_dependencies:
flutter_test:
sdk: flutter
pedantic: '>=1.11.1 <3.0.0'
pedantic: '>=1.11.1 <3.0.0'

# Setting to any will let the SDK version define
# the most compatible version.
leak_tracker_flutter_testing: any
4 changes: 4 additions & 0 deletions test/basic_test.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

import 'utils.dart';

void main() {
LeakTesting.settings = LeakTesting.settings.withIgnored(createdByTestHelpers: true);
LeakTesting.enable();

testWidgets('Only Text', (tester) async {
await pump(
tester: tester,
Expand Down
4 changes: 4 additions & 0 deletions test/group_builder_test.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

import 'utils.dart';

Expand Down Expand Up @@ -45,6 +46,9 @@ void _expectFontSizes(WidgetTester tester, double fontSize) {
}

void main() {
LeakTesting.settings = LeakTesting.settings.withIgnored(createdByTestHelpers: true);
LeakTesting.enable();

testWidgets('Group sync', (tester) async {
await tester.pumpWidget(testWidget(width1: 300, width2: 300));

Expand Down
4 changes: 4 additions & 0 deletions test/group_test.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

import 'utils.dart';

Expand Down Expand Up @@ -59,6 +60,9 @@ void _expectFontSizes(WidgetTester tester, double fontSize) {
}

void main() {
LeakTesting.settings = LeakTesting.settings.withIgnored(createdByTestHelpers: true);
LeakTesting.enable();

testWidgets('Group sync', (tester) async {
await tester.pumpWidget(GroupTest());

Expand Down
4 changes: 4 additions & 0 deletions test/maxlines_test.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

import 'utils.dart';

void main() {
LeakTesting.settings = LeakTesting.settings.withIgnored(createdByTestHelpers: true);
LeakTesting.enable();

testWidgets('Respects maxlines', (tester) async {
await pump(
tester: tester,
Expand Down
4 changes: 4 additions & 0 deletions test/min_max_font_size_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@ import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

import 'utils.dart';

void main() {
LeakTesting.settings = LeakTesting.settings.withIgnored(createdByTestHelpers: true);
LeakTesting.enable();

testWidgets('Forces valid min and max fontSize', (tester) async {
await tester.pumpWidget(
AutoSizeText(
Expand Down
4 changes: 4 additions & 0 deletions test/overflow_replacement_test.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

import 'utils.dart';

void main() {
LeakTesting.settings = LeakTesting.settings.withIgnored(createdByTestHelpers: true);
LeakTesting.enable();

testWidgets('Overflow replacement visible on overflow', (tester) async {
final text = await pumpAndGetText(
tester: tester,
Expand Down
4 changes: 4 additions & 0 deletions test/preset_font_sizes_test.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

import 'utils.dart';

void main() {
LeakTesting.settings = LeakTesting.settings.withIgnored(createdByTestHelpers: true);
LeakTesting.enable();

testWidgets('Preset font sizes', (tester) async {
await pumpAndExpectFontSize(
tester: tester,
Expand Down
4 changes: 4 additions & 0 deletions test/text_fits_test.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

import 'utils.dart';

void main() {
LeakTesting.settings = LeakTesting.settings.withIgnored(createdByTestHelpers: true);
LeakTesting.enable();

testWidgets('Text fits width', (tester) async {
await pumpAndExpectFontSize(
tester: tester,
Expand Down
4 changes: 4 additions & 0 deletions test/wrap_words_test.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';

import 'utils.dart';

void main() {
LeakTesting.settings = LeakTesting.settings.withIgnored(createdByTestHelpers: true);
LeakTesting.enable();

testWidgets('Do not wrap words', (tester) async {
await pumpAndExpectFontSize(
tester: tester,
Expand Down