Merge remote-tracking branch 'origin/develop' into feat/localization

# Conflicts:
#	packages/stream_chat_flutter/lib/src/message_list_view.dart
#	packages/stream_chat_flutter/lib/src/message_search_list_view.dart
This commit is contained in:
xsahil03x
2021-07-21 15:26:06 +05:30
46 changed files with 2552 additions and 301 deletions
@@ -0,0 +1,119 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
import 'mocks.dart';
void main() {
test('ChannelListViewThemeData copyWith, ==, hashCode basics', () {
expect(const ChannelListViewThemeData(),
const ChannelListViewThemeData().copyWith());
});
test(
'''Light ChannelListViewThemeData lerps completely to dark ChannelListViewThemeData''',
() {
expect(
const ChannelListViewThemeData().lerp(_channelListViewThemeDataControl,
_channelListViewThemeDataControlDark, 1),
_channelListViewThemeDataControlDark);
});
test(
'''Light ChannelListViewThemeData lerps halfway to dark ChannelListViewThemeData''',
() {
expect(
const ChannelListViewThemeData().lerp(_channelListViewThemeDataControl,
_channelListViewThemeDataControlDark, 0.5),
_channelListViewThemeDataControlHalfLerp);
});
test(
'''Dark ChannelListViewThemeData lerps completely to light ChannelListViewThemeData''',
() {
expect(
const ChannelListViewThemeData().lerp(
_channelListViewThemeDataControlDark,
_channelListViewThemeDataControl,
1),
_channelListViewThemeDataControl);
});
test('Merging dark and light themes results in a dark theme', () {
expect(
_channelListViewThemeDataControl
.merge(_channelListViewThemeDataControlDark),
_channelListViewThemeDataControlDark);
});
testWidgets(
'Passing no ChannelListViewThemeData returns default light theme values',
(WidgetTester tester) async {
late BuildContext _context;
await tester.pumpWidget(
MaterialApp(
builder: (context, child) => StreamChat(
client: MockClient(),
child: child,
),
home: Builder(
builder: (BuildContext context) {
_context = context;
return Scaffold(
body: StreamChannel(
channel: MockChannel(),
child: const ChannelListView(),
),
);
},
),
),
);
final channelListViewTheme = ChannelListViewTheme.of(_context);
expect(channelListViewTheme.backgroundColor,
_channelListViewThemeDataControl.backgroundColor);
});
testWidgets(
'Passing no ChannelListViewThemeData returns default dark theme values',
(WidgetTester tester) async {
late BuildContext _context;
await tester.pumpWidget(
MaterialApp(
builder: (context, child) => StreamChat(
client: MockClient(),
streamChatThemeData: StreamChatThemeData.dark(),
child: child,
),
home: Builder(
builder: (BuildContext context) {
_context = context;
return Scaffold(
body: StreamChannel(
channel: MockChannel(),
child: const MessageListView(),
),
);
},
),
),
);
final channelListViewTheme = ChannelListViewTheme.of(_context);
expect(channelListViewTheme.backgroundColor,
_channelListViewThemeDataControlDark.backgroundColor);
});
}
final _channelListViewThemeDataControl = ChannelListViewThemeData(
backgroundColor: ColorTheme.light().appBg,
);
const _channelListViewThemeDataControlHalfLerp = ChannelListViewThemeData(
backgroundColor: Color(0xff818384),
);
final _channelListViewThemeDataControlDark = ChannelListViewThemeData(
backgroundColor: ColorTheme.dark().appBg,
);
@@ -47,13 +47,6 @@ void main() {
_galleryHeaderThemeDataDarkControl);
});
test('Merging dark and light themes results in a dark theme', () {
expect(
_galleryHeaderThemeDataDarkControl
.merge(_galleryHeaderThemeDataControl),
_galleryHeaderThemeDataControl);
});
testWidgets(
'Passing no GalleryHeaderThemeData returns default light theme values',
(WidgetTester tester) async {
@@ -0,0 +1,124 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
import 'mocks.dart';
class MockStreamChatClient extends Mock implements StreamChatClient {}
void main() {
test('MessageListViewThemeData copyWith, ==, hashCode basics', () {
expect(const MessageListViewThemeData(),
const MessageListViewThemeData().copyWith());
expect(const MessageListViewThemeData().hashCode,
const MessageListViewThemeData().copyWith().hashCode);
});
test(
'''Light MessageListViewThemeData lerps completely to dark MessageListViewThemeData''',
() {
expect(
const MessageListViewThemeData().lerp(_messageListViewThemeDataControl,
_messageListViewThemeDataControlDark, 1),
_messageListViewThemeDataControlDark);
});
test(
'''Light MessageListViewThemeData lerps halfway to dark MessageListViewThemeData''',
() {
expect(
const MessageListViewThemeData().lerp(_messageListViewThemeDataControl,
_messageListViewThemeDataControlDark, 0.5),
_messageListViewThemeDataControlHalfLerp);
});
test(
'''Dark MessageListViewThemeData lerps completely to light MessageListViewThemeData''',
() {
expect(
const MessageListViewThemeData().lerp(
_messageListViewThemeDataControlDark,
_messageListViewThemeDataControl,
1),
_messageListViewThemeDataControl);
});
test('Merging dark and light themes results in a dark theme', () {
expect(
_messageListViewThemeDataControl
.merge(_messageListViewThemeDataControlDark),
_messageListViewThemeDataControlDark);
});
testWidgets(
'Passing no MessageListViewThemeData returns default light theme values',
(WidgetTester tester) async {
late BuildContext _context;
await tester.pumpWidget(
MaterialApp(
builder: (context, child) => StreamChat(
client: MockStreamChatClient(),
child: child,
),
home: Builder(
builder: (BuildContext context) {
_context = context;
return Scaffold(
body: StreamChannel(
channel: MockChannel(),
child: const MessageListView(),
),
);
},
),
),
);
final messageListViewTheme = MessageListViewTheme.of(_context);
expect(messageListViewTheme.backgroundColor,
_messageListViewThemeDataControl.backgroundColor);
});
testWidgets(
'Passing no MessageListViewThemeData returns default dark theme values',
(WidgetTester tester) async {
late BuildContext _context;
await tester.pumpWidget(
MaterialApp(
builder: (context, child) => StreamChat(
client: MockStreamChatClient(),
streamChatThemeData: StreamChatThemeData.dark(),
child: child,
),
home: Builder(
builder: (BuildContext context) {
_context = context;
return Scaffold(
body: StreamChannel(
channel: MockChannel(),
child: const MessageListView(),
),
);
},
),
),
);
final messageListViewTheme = MessageListViewTheme.of(_context);
expect(messageListViewTheme.backgroundColor,
_messageListViewThemeDataControlDark.backgroundColor);
});
}
final _messageListViewThemeDataControl = MessageListViewThemeData(
backgroundColor: ColorTheme.light().barsBg,
);
const _messageListViewThemeDataControlHalfLerp = MessageListViewThemeData(
backgroundColor: Color(0xff87898b),
);
final _messageListViewThemeDataControlDark = MessageListViewThemeData(
backgroundColor: ColorTheme.dark().barsBg,
);
@@ -0,0 +1,129 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
import 'mocks.dart';
void main() {
test('MessageSearchListViewThemeData copyWith, ==, hashCode basics', () {
expect(const MessageSearchListViewThemeData(),
const MessageSearchListViewThemeData().copyWith());
expect(const MessageSearchListViewThemeData().hashCode,
const MessageSearchListViewThemeData().copyWith().hashCode);
});
test(
'''Light MessageSearchListViewThemeData lerps completely to dark MessageSearchListViewThemeData''',
() {
expect(
const MessageSearchListViewThemeData().lerp(
_messageSearchListViewThemeDataControl,
_messageSearchListViewThemeDataControlDark,
1),
_messageSearchListViewThemeDataControlDark);
});
test(
'''Light MessageSearchListViewThemeData lerps halfway to dark MessageSearchListViewThemeData''',
() {
expect(
const MessageSearchListViewThemeData().lerp(
_messageSearchListViewThemeDataControl,
_messageSearchListViewThemeDataControlDark,
0.5),
_messageSearchListViewThemeDataControlHalfLerp);
});
test(
'''Dark MessageSearchListViewThemeData lerps completely to light MessageSearchListViewThemeData''',
() {
expect(
const MessageSearchListViewThemeData().lerp(
_messageSearchListViewThemeDataControlDark,
_messageSearchListViewThemeDataControl,
1),
_messageSearchListViewThemeDataControl);
});
test('Merging dark and light themes results in a dark theme', () {
expect(
_messageSearchListViewThemeDataControl
.merge(_messageSearchListViewThemeDataControlDark),
_messageSearchListViewThemeDataControlDark);
});
testWidgets(
'''Passing no MessageSearchListViewThemeData returns default light theme values''',
(WidgetTester tester) async {
late BuildContext _context;
await tester.pumpWidget(
MaterialApp(
builder: (context, child) => StreamChat(
client: MockClient(),
child: child,
),
home: Builder(
builder: (BuildContext context) {
_context = context;
return Scaffold(
body: MessageSearchBloc(
child: MessageSearchListView(
filters: Filter.in_('members', const ['test_id']),
),
),
);
},
),
),
);
final messageSearchListViewTheme = MessageSearchListViewTheme.of(_context);
expect(messageSearchListViewTheme.backgroundColor,
_messageSearchListViewThemeDataControl.backgroundColor);
});
testWidgets(
'''Passing no MessageSearchListViewThemeData returns default dark theme values''',
(WidgetTester tester) async {
late BuildContext _context;
await tester.pumpWidget(
MaterialApp(
builder: (context, child) => StreamChat(
client: MockClient(),
streamChatThemeData: StreamChatThemeData.dark(),
child: child,
),
home: Builder(
builder: (BuildContext context) {
_context = context;
return Scaffold(
body: MessageSearchBloc(
child: MessageSearchListView(
filters: Filter.in_('members', const ['test_id']),
),
),
);
},
),
),
);
final messageSearchListViewTheme = MessageSearchListViewTheme.of(_context);
expect(messageSearchListViewTheme.backgroundColor,
_messageSearchListViewThemeDataControlDark.backgroundColor);
});
}
final _messageSearchListViewThemeDataControl = MessageSearchListViewThemeData(
backgroundColor: ColorTheme.light().appBg,
);
const _messageSearchListViewThemeDataControlHalfLerp =
MessageSearchListViewThemeData(
backgroundColor: Color(0xff818384),
);
final _messageSearchListViewThemeDataControlDark =
MessageSearchListViewThemeData(
backgroundColor: ColorTheme.dark().appBg,
);
@@ -0,0 +1,114 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
import 'mocks.dart';
void main() {
test('UserListViewThemeData copyWith, ==, hashCode basics', () {
expect(const UserListViewThemeData(),
const UserListViewThemeData().copyWith());
});
test(
'''Light UserListViewThemeData lerps completely to dark UserListViewThemeData''',
() {
expect(
const UserListViewThemeData().lerp(_userListViewThemeDataControl,
_userListViewThemeDataControlDark, 1),
_userListViewThemeDataControlDark);
});
test(
'''Light UserListViewThemeData lerps halfway to dark UserListViewThemeData''',
() {
expect(
const UserListViewThemeData().lerp(_userListViewThemeDataControl,
_userListViewThemeDataControlDark, 0.5),
_userListViewThemeDataControlHalfLerp);
});
test(
'''Dark UserListViewThemeData lerps completely to light UserListViewThemeData''',
() {
expect(
const UserListViewThemeData().lerp(_userListViewThemeDataControlDark,
_userListViewThemeDataControl, 1),
_userListViewThemeDataControl);
});
test('Merging dark and light themes results in a dark theme', () {
expect(
_userListViewThemeDataControl.merge(_userListViewThemeDataControlDark),
_userListViewThemeDataControlDark);
});
testWidgets(
'Passing no ChannelListViewThemeData returns default light theme values',
(WidgetTester tester) async {
late BuildContext _context;
await tester.pumpWidget(
MaterialApp(
builder: (context, child) => StreamChat(
client: MockClient(),
child: child,
),
home: Builder(
builder: (BuildContext context) {
_context = context;
return const Scaffold(
body: UsersBloc(
child: UserListView(),
),
);
},
),
),
);
final userListViewTheme = UserListViewTheme.of(_context);
expect(userListViewTheme.backgroundColor,
_userListViewThemeDataControl.backgroundColor);
});
testWidgets(
'Passing no ChannelListViewThemeData returns default dark theme values',
(WidgetTester tester) async {
late BuildContext _context;
await tester.pumpWidget(
MaterialApp(
builder: (context, child) => StreamChat(
client: MockClient(),
streamChatThemeData: StreamChatThemeData.dark(),
child: child,
),
home: Builder(
builder: (BuildContext context) {
_context = context;
return const Scaffold(
body: UsersBloc(
child: UserListView(),
),
);
},
),
),
);
final userListViewTheme = UserListViewTheme.of(_context);
expect(userListViewTheme.backgroundColor,
_userListViewThemeDataControlDark.backgroundColor);
});
}
final _userListViewThemeDataControl = UserListViewThemeData(
backgroundColor: ColorTheme.light().appBg,
);
const _userListViewThemeDataControlHalfLerp = UserListViewThemeData(
backgroundColor: Color(0xff818384),
);
final _userListViewThemeDataControlDark = UserListViewThemeData(
backgroundColor: ColorTheme.dark().appBg,
);