Skip to content

Commit

Permalink
Merge pull request #4 from adityadroid/ConversationUI-Test
Browse files Browse the repository at this point in the history
Tests for Conversation Page
  • Loading branch information
adityadroid authored Aug 17, 2019
2 parents 0fe61cf + fb04bed commit 3f59b1b
Show file tree
Hide file tree
Showing 13 changed files with 235 additions and 99 deletions.
2 changes: 2 additions & 0 deletions lib/pages/ConversationPage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@ import 'package:messio/widgets/ChatListWidget.dart';
import 'package:messio/widgets/InputWidget.dart';

class ConversationPage extends StatefulWidget {

@override
_ConversationPageState createState() => _ConversationPageState();
const ConversationPage();
}

class _ConversationPageState extends State<ConversationPage> {
Expand Down
3 changes: 2 additions & 1 deletion lib/pages/ConversationPageList.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ class ConversationPageList extends StatefulWidget {

@override
_ConversationPageListState createState() => _ConversationPageListState();

const ConversationPageList();
}

class _ConversationPageListState extends State<ConversationPageList> {
Expand All @@ -20,6 +22,5 @@ class _ConversationPageListState extends State<ConversationPageList> {
],
);


}
}
173 changes: 95 additions & 78 deletions lib/widgets/ChatAppBar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,96 +4,113 @@ import 'package:messio/config/Palette.dart';

class ChatAppBar extends StatelessWidget implements PreferredSizeWidget {
final double height = 100;

const ChatAppBar();

@override
Widget build(BuildContext context) {
var textHeading = TextStyle(color: Palette.primaryTextColor, fontSize: 20); // Text style for the name
var textStyle = TextStyle(color: Palette.secondaryTextColor); // Text style for everything else
var textHeading = TextStyle(
color: Palette.primaryTextColor,
fontSize: 20); // Text style for the name
var textStyle = TextStyle(
color: Palette.secondaryTextColor); // Text style for everything else

double width = MediaQuery.of(context).size.width; // calculate the screen width
return Material(
child: Container(
decoration: new BoxDecoration(boxShadow: [ //adds a shadow to the appbar
decoration: new BoxDecoration(boxShadow: [
//adds a shadow to the appbar
new BoxShadow(
color: Colors.black,
blurRadius: 5.0,
)]),
child: Container(
color: Colors.black,
blurRadius: 5.0,
)
]),
child: Container(
padding: EdgeInsets.only(top: 10, bottom: 10),
color: Palette.primaryBackgroundColor,
child: Row(children: <Widget>[
Expanded( //we're dividing the appbar into 7 : 3 ratio. 7 is for content and 3 is for the display picture.
flex: 7,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
height: 70 - (width * .06),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Expanded(
flex: 2,
child: Center(
child: Icon(
Icons.attach_file,
color: Palette.secondaryColor,
))),
Expanded(
flex: 6,
child: Container(
child: Column(
Expanded(
//we're dividing the appbar into 7 : 3 ratio. 7 is for content and 3 is for the display picture.
flex: 7,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Expanded(
flex: 7,
child: Container(
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Expanded(
flex: 2,
child: Center(
child: IconButton(
icon: Icon(
Icons.attach_file,
color: Palette.secondaryColor,
),
onPressed: ()=>{}))),
Expanded(
flex: 6,
child: Container(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment:
MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text('Aditya Gurjar',
style: textHeading),
Text('@adityagurjar',
style: textStyle)
],
))),
],
))),
//second row containing the buttons for media
Expanded(
flex: 3,
child: Container(
padding: EdgeInsets.fromLTRB(20, 5, 5, 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
CrossAxisAlignment.center,
children: <Widget>[
Text('Aditya Gurjar', style: textHeading),
Text('@adityagurjar', style: textStyle)
Text(
'Photos',
style: textStyle,
),
VerticalDivider(
width: 30,
color: Palette.primaryTextColor,
),
Text(
'Videos',
style: textStyle,
),
VerticalDivider(
width: 30,
color: Palette.primaryTextColor,
),
Text('Files', style: textStyle)
],
))),
],
)),
//second row containing the buttons for media
Container(
height: 23,
padding: EdgeInsets.fromLTRB(20, 5, 5, 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text(
'Photos',
style: textStyle,
),
VerticalDivider(
width: 30,
color: Palette.primaryTextColor,
),
Text(
'Videos',
style: textStyle,
),
VerticalDivider(
width: 30,
color: Palette.primaryTextColor,
),
Text('Files', style: textStyle)
],
)),
],
))),
//This is the display picture
Expanded(
flex: 3,
child: Container(
child: Center(
child: CircleAvatar(
radius: (80 - (width * .06)) / 2,
backgroundImage: Image.asset(
Assets.user,
).image,
)))),
]))));
],
))),
//This is the display picture
Expanded(
flex: 3,
child: Container(
child: Center(
child: CircleAvatar(
radius: 30,
backgroundImage: Image.asset(
Assets.user,
).image,
)))),
]))));
}

@override
Expand Down
4 changes: 2 additions & 2 deletions lib/widgets/ChatItemWidget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import 'package:messio/config/Palette.dart';
import 'package:intl/intl.dart';

class ChatItemWidget extends StatelessWidget{
var index;
final int index;

ChatItemWidget(this.index);
const ChatItemWidget(this.index);

@override
Widget build(BuildContext context) {
Expand Down
6 changes: 5 additions & 1 deletion lib/widgets/InputWidget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ import 'package:messio/config/Palette.dart';

class InputWidget extends StatelessWidget {

final TextEditingController textEditingController = new TextEditingController();
final TextEditingController textEditingController = TextEditingController();


InputWidget();

@override
Widget build(BuildContext context) {
Expand All @@ -16,6 +19,7 @@ class InputWidget extends StatelessWidget {
child: new IconButton(
icon: new Icon(Icons.face),
color: Palette.primaryColor,
onPressed: ()=>{},
),
),
color: Colors.white,
Expand Down
14 changes: 14 additions & 0 deletions test/main_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@

import 'package:flutter_test/flutter_test.dart';
import 'package:messio/main.dart';
import 'package:messio/pages/ConversationPageList.dart';

void main() {
testWidgets('Main UI Test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(Messio());

expect(find.byType(ConversationPageList),findsOneWidget);

});
}
19 changes: 19 additions & 0 deletions test/pages/ConversationPageList_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:messio/pages/ConversationPage.dart';
import 'package:messio/pages/ConversationPageList.dart';

void main(){
const MaterialApp app = MaterialApp(
home: Scaffold(
body: const ConversationPageList()
),
);
testWidgets('ConversationPageList UI Test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(app);
expect(find.byType(ConversationPage),findsOneWidget);
expect(find.byType(PageView),findsOneWidget);

});
}
25 changes: 25 additions & 0 deletions test/pages/ConversationPage_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:messio/pages/ConversationPage.dart';
import 'package:messio/widgets/ChatAppBar.dart';
import 'package:messio/widgets/ChatListWidget.dart';
import 'package:messio/widgets/InputWidget.dart';

void main(){
const MaterialApp app = MaterialApp(
home: Scaffold(
body: const ConversationPage()
),
);

testWidgets('ConversationPage UI Test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(app);

expect(find.byType(ChatAppBar),findsOneWidget);
expect(find.byType(InputWidget),findsOneWidget);
expect(find.byType(ChatListWidget),findsOneWidget);


});
}
17 changes: 0 additions & 17 deletions test/widget_test.dart

This file was deleted.

20 changes: 20 additions & 0 deletions test/widgets/ChatAppBar_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:messio/widgets/ChatAppBar.dart';

void main(){
const MaterialApp app = MaterialApp(
home: Scaffold(
body: const ChatAppBar()
),
);
testWidgets('ChatAppBar UI Test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(app);

expect(find.text('Aditya Gurjar'), findsOneWidget);
expect(find.text('@adityagurjar'), findsOneWidget);
expect(find.byType(IconButton),findsNWidgets(1));
expect(find.byType(CircleAvatar),findsOneWidget);
});
}
20 changes: 20 additions & 0 deletions test/widgets/ChatItemWidget_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:messio/widgets/ChatItemWidget.dart';

void main(){
const MaterialApp app = MaterialApp(
home: Scaffold(
body: const ChatItemWidget(0)
),
);
testWidgets('ChatItemWidget UI Test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(app);

expect(find.byType(Container),findsNWidgets(3));
expect(find.byType(Column),findsNWidgets(1));
expect(find.byType(Row),findsNWidgets(2));
expect(find.byType(Text),findsNWidgets(2));
});
}
12 changes: 12 additions & 0 deletions test/widgets/ChatListWidget_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:messio/main.dart';

void main(){
testWidgets('ChatListWidget UI Test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(Messio());

expect(find.byType(ListView),findsOneWidget);
});
}
Loading

0 comments on commit 3f59b1b

Please sign in to comment.