Merge branch 'develop' into localization-ko-and-jp
This commit is contained in:
@@ -48,7 +48,7 @@ void main() {
|
||||
);
|
||||
|
||||
testWidgets(
|
||||
'it should show the the other member image',
|
||||
'it should show the other member image',
|
||||
(tester) async {
|
||||
final client = MockClient();
|
||||
final clientState = MockClientState();
|
||||
@@ -74,9 +74,7 @@ void main() {
|
||||
userId: 'user-id2',
|
||||
user: User(
|
||||
id: 'user-id2',
|
||||
extraData: const {
|
||||
'image': 'testimage',
|
||||
},
|
||||
image: 'testimage',
|
||||
),
|
||||
)
|
||||
]));
|
||||
@@ -85,9 +83,7 @@ void main() {
|
||||
userId: 'user-id2',
|
||||
user: User(
|
||||
id: 'user-id2',
|
||||
extraData: const {
|
||||
'image': 'testimage',
|
||||
},
|
||||
image: 'testimage',
|
||||
),
|
||||
),
|
||||
Member(
|
||||
@@ -98,9 +94,7 @@ void main() {
|
||||
when(() => clientState.usersStream).thenAnswer((i) => Stream.value({
|
||||
'user-id2': User(
|
||||
id: 'user-id2',
|
||||
extraData: const {
|
||||
'image': 'testimage',
|
||||
},
|
||||
image: 'testimage',
|
||||
),
|
||||
}));
|
||||
when(() => channel.extraData).thenReturn({
|
||||
@@ -149,27 +143,21 @@ void main() {
|
||||
userId: 'user-id',
|
||||
user: User(
|
||||
id: 'user-id',
|
||||
extraData: const {
|
||||
'image': 'testimage1',
|
||||
},
|
||||
image: 'testimage1',
|
||||
),
|
||||
),
|
||||
Member(
|
||||
userId: 'user-id2',
|
||||
user: User(
|
||||
id: 'user-id2',
|
||||
extraData: const {
|
||||
'image': 'testimage2',
|
||||
},
|
||||
image: 'testimage2',
|
||||
),
|
||||
),
|
||||
Member(
|
||||
userId: 'user-id3',
|
||||
user: User(
|
||||
id: 'user-id3',
|
||||
extraData: const {
|
||||
'image': 'testimage3',
|
||||
},
|
||||
image: 'testimage3',
|
||||
),
|
||||
),
|
||||
];
|
||||
|
||||
@@ -21,6 +21,8 @@ void main() {
|
||||
when(() => clientState.currentUser).thenReturn(user);
|
||||
when(() => clientState.currentUserStream)
|
||||
.thenAnswer((_) => Stream.value(user));
|
||||
when(() => channel.lastMessageAtStream)
|
||||
.thenAnswer((_) => Stream.value(lastMessageAt));
|
||||
when(() => channel.lastMessageAt).thenReturn(lastMessageAt);
|
||||
when(() => channel.state).thenReturn(channelState);
|
||||
when(() => channel.client).thenReturn(client);
|
||||
|
||||
@@ -21,11 +21,11 @@ void main() {
|
||||
client: client,
|
||||
child: const Scaffold(
|
||||
body: DeletedMessage(
|
||||
messageTheme: MessageTheme(
|
||||
createdAt: TextStyle(
|
||||
messageTheme: MessageThemeData(
|
||||
createdAtStyle: TextStyle(
|
||||
color: Colors.black,
|
||||
),
|
||||
messageText: TextStyle(),
|
||||
messageTextStyle: TextStyle(),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -84,7 +84,7 @@ void main() {
|
||||
final clientState = MockClientState();
|
||||
final channel = MockChannel();
|
||||
final channelState = MockChannelState();
|
||||
const messageTheme = MessageTheme();
|
||||
const messageTheme = MessageThemeData();
|
||||
|
||||
final currentUser = OwnUser(
|
||||
id: 'sahil',
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||
|
||||
void main() {
|
||||
test('AvatarThemeData copyWith, ==, hashCode basics', () {
|
||||
expect(const AvatarThemeData(), const AvatarThemeData().copyWith());
|
||||
expect(const AvatarThemeData().hashCode,
|
||||
const AvatarThemeData().copyWith().hashCode);
|
||||
});
|
||||
|
||||
group('AvatarThemeData lerps correctly', () {
|
||||
test('Lerp completely', () {
|
||||
expect(
|
||||
const AvatarThemeData()
|
||||
.lerp(_avatarThemeDataControl1, _avatarThemeDataControl2, 1),
|
||||
_avatarThemeDataControl2);
|
||||
});
|
||||
|
||||
test('Lerp halfway', () {
|
||||
expect(
|
||||
const AvatarThemeData()
|
||||
.lerp(_avatarThemeDataControl1, _avatarThemeDataControl2, 0.5),
|
||||
_avatarThemeDataControlMidLerp);
|
||||
});
|
||||
});
|
||||
|
||||
test('Merging two AvatarThemeData results in the latter', () {
|
||||
expect(_avatarThemeDataControl1.merge(_avatarThemeDataControl2),
|
||||
_avatarThemeDataControl2);
|
||||
});
|
||||
}
|
||||
|
||||
const _avatarThemeDataControl1 = AvatarThemeData();
|
||||
|
||||
final _avatarThemeDataControlMidLerp = AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 33,
|
||||
width: 33,
|
||||
),
|
||||
);
|
||||
|
||||
final _avatarThemeDataControl2 = AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 34,
|
||||
width: 34,
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,97 @@
|
||||
import 'package:flutter/material.dart' hide TextTheme;
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||
|
||||
void main() {
|
||||
test('ChannelHeaderThemeData copyWith, ==, hashCode basics', () {
|
||||
expect(const ChannelHeaderThemeData(),
|
||||
const ChannelHeaderThemeData().copyWith());
|
||||
expect(const ChannelHeaderThemeData().hashCode,
|
||||
const ChannelHeaderThemeData().copyWith().hashCode);
|
||||
});
|
||||
|
||||
group('ChannelHeaderThemeData lerps', () {
|
||||
test(
|
||||
'''Light ChannelHeaderThemeData lerps completely to dark ChannelHeaderThemeData''',
|
||||
() {
|
||||
expect(
|
||||
const ChannelHeaderThemeData()
|
||||
.lerp(_channelThemeControl, _channelThemeControlDark, 1),
|
||||
_channelThemeControlDark);
|
||||
});
|
||||
|
||||
test(
|
||||
'''Light ChannelHeaderThemeData lerps halfway to dark ChannelHeaderThemeData''',
|
||||
() {
|
||||
expect(
|
||||
const ChannelHeaderThemeData()
|
||||
.lerp(_channelThemeControl, _channelThemeControlDark, 0.5),
|
||||
_channelThemeControlMidLerp);
|
||||
});
|
||||
|
||||
test(
|
||||
'''Dark ChannelHeaderThemeData lerps completely to light ChannelHeaderThemeData''',
|
||||
() {
|
||||
expect(
|
||||
const ChannelHeaderThemeData()
|
||||
.lerp(_channelThemeControlDark, _channelThemeControl, 1),
|
||||
_channelThemeControl);
|
||||
});
|
||||
});
|
||||
|
||||
test('Merging dark and light themes results in a dark theme', () {
|
||||
expect(_channelThemeControl.merge(_channelThemeControlDark),
|
||||
_channelThemeControlDark);
|
||||
});
|
||||
}
|
||||
|
||||
final _channelThemeControl = ChannelHeaderThemeData(
|
||||
avatarTheme: AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 40,
|
||||
width: 40,
|
||||
),
|
||||
),
|
||||
color: const Color(0xff101418),
|
||||
titleStyle: TextTheme.light().headlineBold.copyWith(
|
||||
color: const Color(0xffffffff),
|
||||
),
|
||||
subtitleStyle: TextTheme.light().footnote.copyWith(
|
||||
color: const Color(0xff7a7a7a),
|
||||
),
|
||||
);
|
||||
|
||||
final _channelThemeControlMidLerp = ChannelHeaderThemeData(
|
||||
avatarTheme: AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 40,
|
||||
width: 40,
|
||||
),
|
||||
),
|
||||
color: const Color(0xff101418),
|
||||
titleStyle: const TextStyle(
|
||||
color: Color(0xffffffff),
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 16,
|
||||
),
|
||||
subtitleStyle: TextTheme.light().footnote.copyWith(
|
||||
color: const Color(0xff7a7a7a),
|
||||
),
|
||||
);
|
||||
|
||||
final _channelThemeControlDark = ChannelHeaderThemeData(
|
||||
avatarTheme: AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 40,
|
||||
width: 40,
|
||||
),
|
||||
),
|
||||
color: ColorTheme.dark().barsBg,
|
||||
titleStyle: TextTheme.dark().headlineBold,
|
||||
subtitleStyle: TextTheme.dark().footnote.copyWith(
|
||||
color: const Color(0xff7A7A7A),
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,94 @@
|
||||
import 'package:flutter/material.dart' hide TextTheme;
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||
|
||||
void main() {
|
||||
test('ChannelListHeaderThemeData copyWith, ==, hashCode basics', () {
|
||||
expect(const ChannelListHeaderThemeData(),
|
||||
const ChannelListHeaderThemeData().copyWith());
|
||||
expect(const ChannelListHeaderThemeData().hashCode,
|
||||
const ChannelListHeaderThemeData().copyWith().hashCode);
|
||||
});
|
||||
|
||||
group('ChannelListHeaderThemeData lerps', () {
|
||||
test(
|
||||
'''Light ChannelListHeaderThemeData lerps completely to dark ChannelListHeaderThemeData''',
|
||||
() {
|
||||
expect(
|
||||
const ChannelListHeaderThemeData().lerp(
|
||||
_channelListHeaderThemeControl,
|
||||
_channelListHeaderThemeControlDark,
|
||||
1),
|
||||
_channelListHeaderThemeControlDark);
|
||||
});
|
||||
|
||||
test(
|
||||
'''Light ChannelListHeaderThemeData lerps halfway to dark ChannelListHeaderThemeData''',
|
||||
() {
|
||||
expect(
|
||||
const ChannelListHeaderThemeData().lerp(
|
||||
_channelListHeaderThemeControl,
|
||||
_channelListHeaderThemeControlDark,
|
||||
0.5),
|
||||
_channelListHeaderThemeControlMidLerp);
|
||||
});
|
||||
|
||||
test(
|
||||
'''Dark ChannelListHeaderThemeData lerps completely to light ChannelListHeaderThemeData''',
|
||||
() {
|
||||
expect(
|
||||
const ChannelListHeaderThemeData().lerp(
|
||||
_channelListHeaderThemeControlDark,
|
||||
_channelListHeaderThemeControl,
|
||||
1),
|
||||
_channelListHeaderThemeControl);
|
||||
});
|
||||
});
|
||||
|
||||
test('Merging dark and light themes results in a dark theme', () {
|
||||
expect(
|
||||
_channelListHeaderThemeControl
|
||||
.merge(_channelListHeaderThemeControlDark),
|
||||
_channelListHeaderThemeControlDark);
|
||||
});
|
||||
}
|
||||
|
||||
final _channelListHeaderThemeControl = ChannelListHeaderThemeData(
|
||||
avatarTheme: AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 40,
|
||||
width: 40,
|
||||
),
|
||||
),
|
||||
color: ColorTheme.light().barsBg,
|
||||
titleStyle: TextTheme.light().headlineBold,
|
||||
);
|
||||
|
||||
final _channelListHeaderThemeControlMidLerp = ChannelListHeaderThemeData(
|
||||
avatarTheme: AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 40,
|
||||
width: 40,
|
||||
),
|
||||
),
|
||||
color: const Color(0xff87898b),
|
||||
titleStyle: const TextStyle(
|
||||
color: Color(0xff7f7f7f),
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
);
|
||||
|
||||
final _channelListHeaderThemeControlDark = ChannelListHeaderThemeData(
|
||||
avatarTheme: AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 40,
|
||||
width: 40,
|
||||
),
|
||||
),
|
||||
color: ColorTheme.dark().barsBg,
|
||||
titleStyle: TextTheme.dark().headlineBold,
|
||||
);
|
||||
+1
-1
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||
|
||||
import 'mocks.dart';
|
||||
import '../mocks.dart';
|
||||
|
||||
void main() {
|
||||
test('ChannelListViewThemeData copyWith, ==, hashCode basics', () {
|
||||
@@ -0,0 +1,108 @@
|
||||
import 'package:flutter/material.dart' hide TextTheme;
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||
|
||||
void main() {
|
||||
test('ChannelPreviewThemeData copyWith, ==, hashCode basics', () {
|
||||
expect(const ChannelPreviewThemeData(),
|
||||
const ChannelPreviewThemeData().copyWith());
|
||||
expect(const ChannelPreviewThemeData().hashCode,
|
||||
const ChannelPreviewThemeData().copyWith().hashCode);
|
||||
});
|
||||
|
||||
group('ChannelPreviewThemeData lerps', () {
|
||||
test(
|
||||
'''Light ChannelPreviewThemeData lerps completely to dark ChannelPreviewThemeData''',
|
||||
() {
|
||||
expect(
|
||||
const ChannelPreviewThemeData().lerp(
|
||||
_channelPreviewThemeControl, _channelPreviewThemeControlDark, 1),
|
||||
_channelPreviewThemeControlDark);
|
||||
});
|
||||
|
||||
test(
|
||||
'''Light ChannelPreviewThemeData lerps halfway to dark ChannelPreviewThemeData''',
|
||||
() {
|
||||
expect(
|
||||
const ChannelPreviewThemeData().lerp(_channelPreviewThemeControl,
|
||||
_channelPreviewThemeControlDark, 0.5),
|
||||
_channelPreviewThemeControlMidLerp);
|
||||
});
|
||||
|
||||
test(
|
||||
'''Dark ChannelPreviewThemeData lerps completely to light ChannelPreviewThemeData''',
|
||||
() {
|
||||
expect(
|
||||
const ChannelPreviewThemeData().lerp(
|
||||
_channelPreviewThemeControlDark, _channelPreviewThemeControl, 1),
|
||||
_channelPreviewThemeControl);
|
||||
});
|
||||
});
|
||||
|
||||
test('Merging dark and light themes results in a dark theme', () {
|
||||
expect(_channelPreviewThemeControl.merge(_channelPreviewThemeControlDark),
|
||||
_channelPreviewThemeControlDark);
|
||||
});
|
||||
}
|
||||
|
||||
final _channelPreviewThemeControl = ChannelPreviewThemeData(
|
||||
unreadCounterColor: ColorTheme.light().accentError,
|
||||
avatarTheme: AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 40,
|
||||
width: 40,
|
||||
),
|
||||
),
|
||||
titleStyle: TextTheme.light().bodyBold,
|
||||
subtitleStyle: TextTheme.light().footnote.copyWith(
|
||||
color: const Color(0xff7A7A7A),
|
||||
),
|
||||
lastMessageAtStyle: TextTheme.light().footnote.copyWith(
|
||||
color: ColorTheme.light().textHighEmphasis.withOpacity(.5),
|
||||
),
|
||||
indicatorIconSize: 16,
|
||||
);
|
||||
|
||||
final _channelPreviewThemeControlMidLerp = ChannelPreviewThemeData(
|
||||
unreadCounterColor: const Color(0xffff3742),
|
||||
avatarTheme: AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 40,
|
||||
width: 40,
|
||||
),
|
||||
),
|
||||
titleStyle: const TextStyle(
|
||||
color: Color(0xff7f7f7f),
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
subtitleStyle: const TextStyle(
|
||||
color: Color(0xff7a7a7a),
|
||||
fontSize: 12,
|
||||
),
|
||||
lastMessageAtStyle: TextTheme.light().footnote.copyWith(
|
||||
color: const Color(0x807f7f7f).withOpacity(.5),
|
||||
),
|
||||
indicatorIconSize: 16,
|
||||
);
|
||||
|
||||
final _channelPreviewThemeControlDark = ChannelPreviewThemeData(
|
||||
unreadCounterColor: ColorTheme.dark().accentError,
|
||||
avatarTheme: AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 40,
|
||||
width: 40,
|
||||
),
|
||||
),
|
||||
titleStyle: TextTheme.dark().bodyBold,
|
||||
subtitleStyle: TextTheme.dark().footnote.copyWith(
|
||||
color: const Color(0xff7A7A7A),
|
||||
),
|
||||
lastMessageAtStyle: TextTheme.dark().footnote.copyWith(
|
||||
color: ColorTheme.dark().textHighEmphasis.withOpacity(.5),
|
||||
),
|
||||
indicatorIconSize: 16,
|
||||
);
|
||||
@@ -0,0 +1,122 @@
|
||||
import 'package:flutter/material.dart' hide TextTheme;
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||
|
||||
void main() {
|
||||
test('MessageInputThemeData copyWith, ==, hashCode basics', () {
|
||||
expect(const MessageInputThemeData(),
|
||||
const MessageInputThemeData().copyWith());
|
||||
expect(const MessageInputThemeData().hashCode,
|
||||
const MessageInputThemeData().copyWith().hashCode);
|
||||
});
|
||||
|
||||
group('MessageInputThemeData lerps correctly', () {
|
||||
test('Lerp completely from light to dark', () {
|
||||
expect(
|
||||
const MessageInputThemeData().lerp(
|
||||
_messageInputThemeControl, _messageInputThemeControlDark, 1),
|
||||
_messageInputThemeControlDark);
|
||||
});
|
||||
|
||||
test('Lerp halfway from light to dark', () {
|
||||
expect(
|
||||
const MessageInputThemeData().lerp(
|
||||
_messageInputThemeControl, _messageInputThemeControlDark, 0.5),
|
||||
_messageInputThemeControlMidLerp);
|
||||
});
|
||||
|
||||
test('Lerp completely from dark to light', () {
|
||||
expect(
|
||||
const MessageInputThemeData().lerp(
|
||||
_messageInputThemeControlDark, _messageInputThemeControl, 1),
|
||||
_messageInputThemeControl);
|
||||
});
|
||||
});
|
||||
|
||||
test('Merging two MessageInputThemeData results in the latter', () {
|
||||
expect(_messageInputThemeControl.merge(_messageInputThemeControlDark),
|
||||
_messageInputThemeControlDark);
|
||||
});
|
||||
}
|
||||
|
||||
final _messageInputThemeControl = MessageInputThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
sendAnimationDuration: const Duration(milliseconds: 300),
|
||||
actionButtonColor: ColorTheme.light().accentPrimary,
|
||||
actionButtonIdleColor: ColorTheme.light().textLowEmphasis,
|
||||
expandButtonColor: ColorTheme.light().accentPrimary,
|
||||
sendButtonColor: ColorTheme.light().accentPrimary,
|
||||
sendButtonIdleColor: ColorTheme.light().disabled,
|
||||
inputBackgroundColor: ColorTheme.light().barsBg,
|
||||
inputTextStyle: TextTheme.light().body,
|
||||
idleBorderGradient: LinearGradient(
|
||||
stops: const [0.0, 1.0],
|
||||
colors: [
|
||||
ColorTheme.light().disabled,
|
||||
ColorTheme.light().disabled,
|
||||
],
|
||||
),
|
||||
activeBorderGradient: LinearGradient(
|
||||
stops: const [0.0, 1.0],
|
||||
colors: [
|
||||
ColorTheme.light().disabled,
|
||||
ColorTheme.light().disabled,
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
final _messageInputThemeControlMidLerp = MessageInputThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
sendAnimationDuration: const Duration(milliseconds: 300),
|
||||
inputBackgroundColor: const Color(0xff87898b),
|
||||
actionButtonColor: const Color(0xff005fff),
|
||||
actionButtonIdleColor: const Color(0xff7a7a7a),
|
||||
sendButtonColor: const Color(0xff005fff),
|
||||
sendButtonIdleColor: const Color(0xff848585),
|
||||
expandButtonColor: const Color(0xff005fff),
|
||||
inputTextStyle: const TextStyle(
|
||||
color: Color(0xff7f7f7f),
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
idleBorderGradient: const LinearGradient(
|
||||
stops: [0.0, 1.0],
|
||||
colors: [
|
||||
Color(0xff848585),
|
||||
Color(0xff848585),
|
||||
],
|
||||
),
|
||||
activeBorderGradient: const LinearGradient(
|
||||
stops: [0.0, 1.0],
|
||||
colors: [
|
||||
Color(0xff848585),
|
||||
Color(0xff848585),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
final _messageInputThemeControlDark = MessageInputThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
sendAnimationDuration: const Duration(milliseconds: 300),
|
||||
actionButtonColor: ColorTheme.dark().accentPrimary,
|
||||
actionButtonIdleColor: ColorTheme.dark().textLowEmphasis,
|
||||
expandButtonColor: ColorTheme.dark().accentPrimary,
|
||||
sendButtonColor: ColorTheme.dark().accentPrimary,
|
||||
sendButtonIdleColor: ColorTheme.dark().disabled,
|
||||
inputBackgroundColor: ColorTheme.dark().barsBg,
|
||||
inputTextStyle: TextTheme.dark().body,
|
||||
idleBorderGradient: LinearGradient(
|
||||
stops: const [0.0, 1.0],
|
||||
colors: [
|
||||
ColorTheme.dark().disabled,
|
||||
ColorTheme.dark().disabled,
|
||||
],
|
||||
),
|
||||
activeBorderGradient: LinearGradient(
|
||||
stops: const [0.0, 1.0],
|
||||
colors: [
|
||||
ColorTheme.dark().disabled,
|
||||
ColorTheme.dark().disabled,
|
||||
],
|
||||
),
|
||||
);
|
||||
+1
-1
@@ -3,7 +3,7 @@ import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:mocktail/mocktail.dart';
|
||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||
|
||||
import 'mocks.dart';
|
||||
import '../mocks.dart';
|
||||
|
||||
class MockStreamChatClient extends Mock implements StreamChatClient {}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||
|
||||
import 'mocks.dart';
|
||||
import '../mocks.dart';
|
||||
|
||||
void main() {
|
||||
test('MessageSearchListViewThemeData copyWith, ==, hashCode basics', () {
|
||||
@@ -0,0 +1,90 @@
|
||||
import 'package:flutter/material.dart' hide TextTheme;
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||
|
||||
void main() {
|
||||
test('MessageThemeData copyWith, ==, hashCode basics', () {
|
||||
expect(const MessageThemeData(), const MessageThemeData().copyWith());
|
||||
expect(const MessageThemeData().hashCode,
|
||||
const MessageThemeData().copyWith().hashCode);
|
||||
});
|
||||
|
||||
group('MessageThemeData lerps', () {
|
||||
test('''Light MessageThemeData lerps completely to dark MessageThemeData''',
|
||||
() {
|
||||
expect(
|
||||
const MessageThemeData()
|
||||
.lerp(_messageThemeControl, _messageThemeControlDark, 1),
|
||||
_messageThemeControlDark);
|
||||
});
|
||||
|
||||
test('''Dark MessageThemeData lerps completely to light MessageThemeData''',
|
||||
() {
|
||||
expect(
|
||||
const MessageThemeData()
|
||||
.lerp(_messageThemeControlDark, _messageThemeControl, 1),
|
||||
_messageThemeControl);
|
||||
});
|
||||
});
|
||||
|
||||
test('Merging dark and light themes results in a dark theme', () {
|
||||
expect(_messageThemeControl.merge(_messageThemeControlDark),
|
||||
_messageThemeControlDark);
|
||||
});
|
||||
}
|
||||
|
||||
final _messageThemeControl = MessageThemeData(
|
||||
messageAuthorStyle: TextTheme.light().footnote.copyWith(
|
||||
color: ColorTheme.light().textLowEmphasis,
|
||||
),
|
||||
messageTextStyle: TextTheme.light().body,
|
||||
createdAtStyle: TextTheme.light().footnote.copyWith(
|
||||
color: ColorTheme.light().textLowEmphasis,
|
||||
),
|
||||
repliesStyle: TextTheme.light().footnoteBold.copyWith(
|
||||
color: ColorTheme.light().accentPrimary,
|
||||
),
|
||||
messageBackgroundColor: ColorTheme.light().disabled,
|
||||
reactionsBackgroundColor: ColorTheme.light().barsBg,
|
||||
reactionsBorderColor: ColorTheme.light().borders,
|
||||
reactionsMaskColor: ColorTheme.light().appBg,
|
||||
messageBorderColor: ColorTheme.light().disabled,
|
||||
avatarTheme: AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 32,
|
||||
width: 32,
|
||||
),
|
||||
),
|
||||
messageLinksStyle: TextStyle(
|
||||
color: ColorTheme.light().accentPrimary,
|
||||
),
|
||||
);
|
||||
|
||||
final _messageThemeControlDark = MessageThemeData(
|
||||
messageAuthorStyle: TextTheme.dark().footnote.copyWith(
|
||||
color: ColorTheme.dark().textLowEmphasis,
|
||||
),
|
||||
messageTextStyle: TextTheme.dark().body,
|
||||
createdAtStyle: TextTheme.dark().footnote.copyWith(
|
||||
color: ColorTheme.dark().textLowEmphasis,
|
||||
),
|
||||
repliesStyle: TextTheme.dark().footnoteBold.copyWith(
|
||||
color: ColorTheme.dark().accentPrimary,
|
||||
),
|
||||
messageBackgroundColor: ColorTheme.dark().disabled,
|
||||
reactionsBackgroundColor: ColorTheme.dark().barsBg,
|
||||
reactionsBorderColor: ColorTheme.dark().borders,
|
||||
reactionsMaskColor: ColorTheme.dark().appBg,
|
||||
messageBorderColor: ColorTheme.dark().disabled,
|
||||
avatarTheme: AvatarThemeData(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
constraints: const BoxConstraints.tightFor(
|
||||
height: 32,
|
||||
width: 32,
|
||||
),
|
||||
),
|
||||
messageLinksStyle: TextStyle(
|
||||
color: ColorTheme.dark().accentPrimary,
|
||||
),
|
||||
);
|
||||
+1
-1
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||
|
||||
import 'mocks.dart';
|
||||
import '../mocks.dart';
|
||||
|
||||
void main() {
|
||||
test('UserListViewThemeData copyWith, ==, hashCode basics', () {
|
||||
Reference in New Issue
Block a user