| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:flutter/material.dart'; |
| import 'package:flutter_test/flutter_test.dart'; |
| |
| void main() { |
| testWidgets('English translations exist for all MaterialLocalizations properties', (WidgetTester tester) async { |
| const MaterialLocalizations localizations = DefaultMaterialLocalizations(); |
| |
| expect(localizations.openAppDrawerTooltip, isNotNull); |
| expect(localizations.backButtonTooltip, isNotNull); |
| expect(localizations.closeButtonTooltip, isNotNull); |
| expect(localizations.deleteButtonTooltip, isNotNull); |
| expect(localizations.moreButtonTooltip, isNotNull); |
| expect(localizations.nextMonthTooltip, isNotNull); |
| expect(localizations.previousMonthTooltip, isNotNull); |
| expect(localizations.nextPageTooltip, isNotNull); |
| expect(localizations.previousPageTooltip, isNotNull); |
| expect(localizations.firstPageTooltip, isNotNull); |
| expect(localizations.lastPageTooltip, isNotNull); |
| expect(localizations.showMenuTooltip, isNotNull); |
| expect(localizations.licensesPageTitle, isNotNull); |
| expect(localizations.rowsPerPageTitle, isNotNull); |
| expect(localizations.cancelButtonLabel, isNotNull); |
| expect(localizations.closeButtonLabel, isNotNull); |
| expect(localizations.continueButtonLabel, isNotNull); |
| expect(localizations.copyButtonLabel, isNotNull); |
| expect(localizations.cutButtonLabel, isNotNull); |
| expect(localizations.okButtonLabel, isNotNull); |
| expect(localizations.pasteButtonLabel, isNotNull); |
| expect(localizations.selectAllButtonLabel, isNotNull); |
| expect(localizations.viewLicensesButtonLabel, isNotNull); |
| expect(localizations.anteMeridiemAbbreviation, isNotNull); |
| expect(localizations.postMeridiemAbbreviation, isNotNull); |
| expect(localizations.timePickerHourModeAnnouncement, isNotNull); |
| expect(localizations.timePickerMinuteModeAnnouncement, isNotNull); |
| expect(localizations.modalBarrierDismissLabel, isNotNull); |
| expect(localizations.drawerLabel, isNotNull); |
| expect(localizations.menuBarMenuLabel, isNotNull); |
| expect(localizations.popupMenuLabel, isNotNull); |
| expect(localizations.dialogLabel, isNotNull); |
| expect(localizations.alertDialogLabel, isNotNull); |
| expect(localizations.searchFieldLabel, isNotNull); |
| expect(localizations.dateSeparator, isNotNull); |
| expect(localizations.dateHelpText, isNotNull); |
| expect(localizations.selectYearSemanticsLabel, isNotNull); |
| expect(localizations.unspecifiedDate, isNotNull); |
| expect(localizations.unspecifiedDateRange, isNotNull); |
| expect(localizations.dateInputLabel, isNotNull); |
| expect(localizations.dateRangeStartLabel, isNotNull); |
| expect(localizations.dateRangeEndLabel, isNotNull); |
| expect(localizations.invalidDateFormatLabel, isNotNull); |
| expect(localizations.invalidDateRangeLabel, isNotNull); |
| expect(localizations.dateOutOfRangeLabel, isNotNull); |
| expect(localizations.saveButtonLabel, isNotNull); |
| expect(localizations.datePickerHelpText, isNotNull); |
| expect(localizations.dateRangePickerHelpText, isNotNull); |
| expect(localizations.calendarModeButtonLabel, isNotNull); |
| expect(localizations.inputDateModeButtonLabel, isNotNull); |
| expect(localizations.timePickerDialHelpText, isNotNull); |
| expect(localizations.timePickerInputHelpText, isNotNull); |
| expect(localizations.timePickerHourLabel, isNotNull); |
| expect(localizations.timePickerMinuteLabel, isNotNull); |
| expect(localizations.invalidTimeLabel, isNotNull); |
| expect(localizations.dialModeButtonLabel, isNotNull); |
| expect(localizations.inputTimeModeButtonLabel, isNotNull); |
| expect(localizations.signedInLabel, isNotNull); |
| expect(localizations.hideAccountsLabel, isNotNull); |
| expect(localizations.showAccountsLabel, isNotNull); |
| expect(localizations.reorderItemToStart, isNotNull); |
| expect(localizations.reorderItemToEnd, isNotNull); |
| expect(localizations.reorderItemUp, isNotNull); |
| expect(localizations.reorderItemDown, isNotNull); |
| expect(localizations.reorderItemLeft, isNotNull); |
| expect(localizations.reorderItemRight, isNotNull); |
| expect(localizations.keyboardKeyAlt, isNotNull); |
| expect(localizations.keyboardKeyAltGraph, isNotNull); |
| expect(localizations.keyboardKeyBackspace, isNotNull); |
| expect(localizations.keyboardKeyCapsLock, isNotNull); |
| expect(localizations.keyboardKeyChannelDown, isNotNull); |
| expect(localizations.keyboardKeyChannelUp, isNotNull); |
| expect(localizations.keyboardKeyControl, isNotNull); |
| expect(localizations.keyboardKeyDelete, isNotNull); |
| expect(localizations.keyboardKeyEject, isNotNull); |
| expect(localizations.keyboardKeyEnd, isNotNull); |
| expect(localizations.keyboardKeyEscape, isNotNull); |
| expect(localizations.keyboardKeyFn, isNotNull); |
| expect(localizations.keyboardKeyHome, isNotNull); |
| expect(localizations.keyboardKeyInsert, isNotNull); |
| expect(localizations.keyboardKeyMeta, isNotNull); |
| expect(localizations.keyboardKeyMetaMacOs, isNotNull); |
| expect(localizations.keyboardKeyMetaWindows, isNotNull); |
| expect(localizations.keyboardKeyNumLock, isNotNull); |
| expect(localizations.keyboardKeyNumpad1, isNotNull); |
| expect(localizations.keyboardKeyNumpad2, isNotNull); |
| expect(localizations.keyboardKeyNumpad3, isNotNull); |
| expect(localizations.keyboardKeyNumpad4, isNotNull); |
| expect(localizations.keyboardKeyNumpad5, isNotNull); |
| expect(localizations.keyboardKeyNumpad6, isNotNull); |
| expect(localizations.keyboardKeyNumpad7, isNotNull); |
| expect(localizations.keyboardKeyNumpad8, isNotNull); |
| expect(localizations.keyboardKeyNumpad9, isNotNull); |
| expect(localizations.keyboardKeyNumpad0, isNotNull); |
| expect(localizations.keyboardKeyNumpadAdd, isNotNull); |
| expect(localizations.keyboardKeyNumpadComma, isNotNull); |
| expect(localizations.keyboardKeyNumpadDecimal, isNotNull); |
| expect(localizations.keyboardKeyNumpadDivide, isNotNull); |
| expect(localizations.keyboardKeyNumpadEnter, isNotNull); |
| expect(localizations.keyboardKeyNumpadEqual, isNotNull); |
| expect(localizations.keyboardKeyNumpadMultiply, isNotNull); |
| expect(localizations.keyboardKeyNumpadParenLeft, isNotNull); |
| expect(localizations.keyboardKeyNumpadParenRight, isNotNull); |
| expect(localizations.keyboardKeyNumpadSubtract, isNotNull); |
| expect(localizations.keyboardKeyPageDown, isNotNull); |
| expect(localizations.keyboardKeyPageUp, isNotNull); |
| expect(localizations.keyboardKeyPower, isNotNull); |
| expect(localizations.keyboardKeyPowerOff, isNotNull); |
| expect(localizations.keyboardKeyPrintScreen, isNotNull); |
| expect(localizations.keyboardKeyScrollLock, isNotNull); |
| expect(localizations.keyboardKeySelect, isNotNull); |
| expect(localizations.keyboardKeyShift, isNotNull); |
| expect(localizations.keyboardKeySpace, isNotNull); |
| expect(localizations.currentDateLabel, isNotNull); |
| expect(localizations.scrimLabel, isNotNull); |
| expect(localizations.bottomSheetLabel, isNotNull); |
| |
| expect(localizations.scrimOnTapHint('FOO'), contains('FOO')); |
| |
| expect(localizations.aboutListTileTitle('FOO'), isNotNull); |
| expect(localizations.aboutListTileTitle('FOO'), contains('FOO')); |
| |
| expect(localizations.selectedRowCountTitle(0), isNotNull); |
| expect(localizations.selectedRowCountTitle(1), isNotNull); |
| expect(localizations.selectedRowCountTitle(2), isNotNull); |
| expect(localizations.selectedRowCountTitle(100), isNotNull); |
| expect(localizations.selectedRowCountTitle(0).contains(r'$selectedRowCount'), isFalse); |
| expect(localizations.selectedRowCountTitle(1).contains(r'$selectedRowCount'), isFalse); |
| expect(localizations.selectedRowCountTitle(2).contains(r'$selectedRowCount'), isFalse); |
| expect(localizations.selectedRowCountTitle(100).contains(r'$selectedRowCount'), isFalse); |
| |
| expect(localizations.pageRowsInfoTitle(1, 10, 100, true), isNotNull); |
| expect(localizations.pageRowsInfoTitle(1, 10, 100, false), isNotNull); |
| expect(localizations.pageRowsInfoTitle(1, 10, 100, true).contains(r'$firstRow'), isFalse); |
| expect(localizations.pageRowsInfoTitle(1, 10, 100, true).contains(r'$lastRow'), isFalse); |
| expect(localizations.pageRowsInfoTitle(1, 10, 100, true).contains(r'$rowCount'), isFalse); |
| expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$firstRow'), isFalse); |
| expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$lastRow'), isFalse); |
| expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$rowCount'), isFalse); |
| |
| expect(localizations.licensesPackageDetailText(0), isNotNull); |
| expect(localizations.licensesPackageDetailText(1), isNotNull); |
| expect(localizations.licensesPackageDetailText(2), isNotNull); |
| expect(localizations.licensesPackageDetailText(100), isNotNull); |
| expect(localizations.licensesPackageDetailText(1).contains(r'$licensesCount'), isFalse); |
| expect(localizations.licensesPackageDetailText(2).contains(r'$licensesCount'), isFalse); |
| expect(localizations.licensesPackageDetailText(100).contains(r'$licensesCount'), isFalse); |
| }); |
| |
| testWidgets('MaterialLocalizations.of throws', (WidgetTester tester) async { |
| final GlobalKey noLocalizationsAvailable = GlobalKey(); |
| final GlobalKey localizationsAvailable = GlobalKey(); |
| |
| await tester.pumpWidget( |
| Container( |
| key: noLocalizationsAvailable, |
| child: MaterialApp( |
| home: Container( |
| key: localizationsAvailable, |
| ), |
| ), |
| ), |
| ); |
| |
| expect(() => MaterialLocalizations.of(noLocalizationsAvailable.currentContext!), throwsA(isAssertionError.having( |
| (AssertionError e) => e.message, |
| 'message', |
| contains('No MaterialLocalizations found'), |
| ))); |
| |
| expect(MaterialLocalizations.of(localizationsAvailable.currentContext!), isA<MaterialLocalizations>()); |
| }); |
| } |