Skip to content

Commit 2784bcd

Browse files
authored
Upgrade cloudinary_dart to 0.0.7
1 parent 7be7f80 commit 2784bcd

5 files changed

Lines changed: 109 additions & 1 deletion

File tree

‎cloudinary_flutter.iml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<module type="WEB_MODULE" version="4">
2+
<module type="JAVA_MODULE" version="4">
33
<component name="NewModuleRootManager" inherit-compiler-output="true">
44
<exclude-output />
55
<content url="file://$MODULE_DIR$">

‎lib/cld_image.dart‎

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import 'package:cloudinary_dart/asset/cld_image.dart';
2+
import 'package:cloudinary_dart/transformation/transformation.dart';
3+
import 'package:flutter/widgets.dart';
4+
import 'cloudinary_context.dart';
5+
6+
class CldImageWidget extends StatefulWidget {
7+
late final CldImage image;
8+
CldImageWidget(
9+
{required String publicId,
10+
super.key,
11+
String? version,
12+
String? extension,
13+
String? urlSuffix,
14+
String? assetType,
15+
String? deliveryType,
16+
Transformation? transformation}) {
17+
image = CloudinaryContext.cloudinary.image(publicId);
18+
((version != null) ? image.version(version) : null);
19+
((extension != null) ? image.extension(extension) : null);
20+
((urlSuffix != null) ? image.urlSuffix(urlSuffix) : null);
21+
((assetType != null) ? image.assetType(assetType) : null);
22+
((deliveryType != null) ? image.deliveryType(deliveryType) : null);
23+
((transformation != null) ? image.transformation(transformation) : null);
24+
}
25+
26+
@override
27+
State<StatefulWidget> createState() {
28+
return _CldImageState();
29+
}
30+
}
31+
32+
class _CldImageState extends State<CldImageWidget> {
33+
@override
34+
Widget build(BuildContext context) {
35+
return Image.network(widget.image.toString());
36+
}
37+
}

‎lib/cloudinary_context.dart‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import 'package:cloudinary_dart/cloudinary.dart';
2+
3+
class CloudinaryContext {
4+
static Cloudinary cloudinary = Cloudinary();
5+
}

‎pubspec.yaml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,12 @@ environment:
88
sdk: '>=2.18.1 <3.0.0'
99

1010
dependencies:
11+
flutter:
12+
sdk: flutter
1113
cloudinary_dart: ^0.0.7
1214

1315
dev_dependencies:
16+
flutter_test:
17+
sdk: flutter
1418
lints: ^2.0.0
1519
test: ^1.16.0

‎test/cld_image_test.dart‎

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import 'dart:io';
2+
3+
import 'package:cloudinary_dart/cloudinary.dart';
4+
import 'package:cloudinary_dart/transformation/resize/resize.dart';
5+
import 'package:cloudinary_dart/transformation/transformation.dart';
6+
import 'package:cloudinary_flutter/cld_image.dart';
7+
import 'package:cloudinary_flutter/cloudinary_context.dart';
8+
import 'package:flutter/cupertino.dart';
9+
import 'package:flutter_test/flutter_test.dart';
10+
11+
void main() {
12+
CloudinaryContext.cloudinary = Cloudinary.fromCloudName(cloudName: 'demo');
13+
CloudinaryContext.cloudinary.config.urlConfig.analytics = false;
14+
setUpAll(() => HttpOverrides.global = null);
15+
testWidgets('Test CldImageWidget has valid url', (widgetTester) async {
16+
var widget = CldImageWidget(publicId: 'dog');
17+
await widgetTester.pumpWidget(widget);
18+
19+
final imageFinder = find.image(
20+
NetworkImage('https://res.cloudinary.com/demo/image/upload/dog'));
21+
expect(imageFinder, findsOneWidget);
22+
});
23+
24+
testWidgets('Test CldImageWidget with version has valid url',
25+
(widgetTester) async {
26+
await widgetTester.pumpWidget(CldImageWidget(
27+
publicId: ('sample'),
28+
version: "1",
29+
));
30+
final imageFinder = find.image(
31+
NetworkImage('https://res.cloudinary.com/demo/image/upload/v1/sample'));
32+
expect(imageFinder, findsOneWidget);
33+
});
34+
35+
testWidgets('Test CldImageWidget with version and urlsuffix has valid url',
36+
(widgetTester) async {
37+
await widgetTester.pumpWidget(CldImageWidget(
38+
publicId: ('sample'),
39+
version: "1",
40+
urlSuffix: 'test',
41+
));
42+
43+
final imageFinder = find.image(
44+
NetworkImage('https://res.cloudinary.com/demo/images/v1/sample/test'));
45+
expect(imageFinder, findsOneWidget);
46+
});
47+
48+
testWidgets(
49+
'Test CldImageWidget with version and transformation has valid url',
50+
(widgetTester) async {
51+
await widgetTester.pumpWidget(CldImageWidget(
52+
publicId: ('sample'),
53+
version: "1",
54+
urlSuffix: 'test',
55+
transformation: Transformation()..resize(Resize.scale()..width(500)),
56+
));
57+
58+
final imageFinder = find.image(NetworkImage(
59+
'https://res.cloudinary.com/demo/images/c_scale,w_500/v1/sample/test'));
60+
expect(imageFinder, findsOneWidget);
61+
});
62+
}

0 commit comments

Comments
 (0)