← Core
In the workslicense: proprietary

tom_flutter_ui_test

tom_flutter_ui_test Β· v1.0.0+1

A demonstration and test application exercising the tom_flutter_ui widget library and its resource parameters.

See License
Status
In the works
LOC
34.3k
Tests
7
Test LOC
390

Overview

From the module readme.md file:

What it enables

No downstream modules declared yet.

Relationships

Standalone β€” no declared relationships.

tom_flutter_ui_test

A Flutter demo / smoke-test application for the Tom Flutter UI library (tom_flutter_ui). It is an internal harness β€” publish_to: none β€” that exercises every part of the library against the live Flutter engine: the Advanced Container Layout (ACL) engine, the Tom-wrapped Material/Cupertino widget set, the form framework, and the resource / authorization machinery driven by tom_core_kernel.

What it demonstrates

The app is a four-tab MaterialApp (see lib/main.dart). Each tab is a list of DemoTiles that open a single full-screen demo:

TabSourceWhat it shows
ACL Demos lib/acl_demos/ The Advanced Container Layout engine: rows, alignment, expand flags, spacing, min/preferred/max sizing, character-width sizing, reference & cross-row constraints, titled/bordered groups, nested containers, responsive shrink/grow, row breakpoints, and the fluent AclBuilder API.
Widget Demos lib/widget_demos/ 27 widget showcases grouped into Input & Actions, Layout & Structure, Display & Info, Advanced, and Scope & Architecture β€” the Tom wrappers over buttons, inputs, selection, toggles, sliders, cards, tables, navigation, slivers, animation, effects, plus resource resolution and scoped element providers.
Forms/Actions lib/forms_demos/ The Tom form framework: TomForm field types with validation, selection/boolean variants over a shared TomSelectableSource , TomFormStyleScope breakpoint overrides, and complex action/authorization gating.
Authorization/Resources lib/widget_demos/demo_21…, demo_28… Resource resolution (labels/icons/tooltips by tomId ) and widget authorization (visibility, readonly, TomUIGroup ).

Running it

flutter pub get
flutter run            # pick a device/emulator

There is no code-generation step β€” unlike the sibling tom_flutter_form_test, this app does not use reflection generation and has no runtime asset bundle. Demo resources (text, icons, colors) are registered entirely in Dart by initializeDemoResources() (lib/demo_resources.dart), which main() calls before runApp so the first frame resolves every widget's labels, icons and colors. The persisted UI language is loaded by LocaleSettingsService (lib/locale_settings.dart) before the first frame and can be changed live from the AppBar language selector.

Tests

flutter test                       # default gate (serial; never run in parallel)
flutter test test/screenshots.dart # on-demand visual-capture harness (not a gate)

test/screenshots.dart is a manual "rerun and diff the PNGs" tool, deliberately excluded from the default gate (no _test.dart suffix). The remaining *_test.dart files (widget_test.dart, debug_form_test.dart, debug_heights_test.dart, debug_shrink_test.dart) are the automated suite.

Project layout

PathPurpose
lib/main.dart Entry point, bootstrap ordering, and the four-tab registry.
lib/demo_resources.dart Registers the text/icon/color resource adapters consumed by the demos.
lib/locale_settings.dart Persisted-locale service + AppBar language selector.
lib/acl_demos/ACL-engine demos and their scaffolding helpers.
lib/widget_demos/ Per-category widget demos (demo_01…demo_28).
lib/forms_demos/Form-framework demos.
lib/common/Shared DemoTile / DemoScaffold.
doc/ demo_catalogue.md (navigation map of every demo) plus developer notes on widget resource parameters and discovery.
test/Automated widget suite plus the on-demand screenshot harness.

Dependencies

  • tom_flutter_ui β€” the library under test (path dependency).
  • tom_core_kernel β€” observables, resources, reflection, security.
  • flutter_localizations, shared_preferences, cupertino_icons.
License
Copyright (c) 2024-2026 Peter Nicolai Alexis Kyaw. All rights reserved.

This code is proprietary and confidential. Unauthorized copying, modification,
distribution, or use of this software, via any medium, is strictly prohibited.

For licensing inquiries, find me on LinkedIn under "Alexis Kyaw".