File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -119,6 +119,8 @@ mixin EmojiStore {
119
119
120
120
Iterable <EmojiCandidate > allEmojiCandidates ();
121
121
122
+ String ? getUnicodeEmojiNameByCode (String emojiCode);
123
+
122
124
// TODO cut debugServerEmojiData once we can query for lists of emoji;
123
125
// have tests make those queries end-to-end
124
126
Map <String , List <String >>? get debugServerEmojiData;
@@ -144,6 +146,10 @@ mixin ProxyEmojiStore on EmojiStore {
144
146
@override
145
147
Iterable <EmojiCandidate > allEmojiCandidates () => emojiStore.allEmojiCandidates ();
146
148
149
+ @override
150
+ String ? getUnicodeEmojiNameByCode (String emojiCode) =>
151
+ emojiStore.getUnicodeEmojiNameByCode (emojiCode);
152
+
147
153
@override
148
154
Map <String , List <String >>? get debugServerEmojiData => emojiStore.debugServerEmojiData;
149
155
}
@@ -396,6 +402,10 @@ class EmojiStoreImpl extends PerAccountStoreBase with EmojiStore {
396
402
return _allEmojiCandidates ?? = _generateAllCandidates ();
397
403
}
398
404
405
+ @override
406
+ String ? getUnicodeEmojiNameByCode (String emojiCode) =>
407
+ _serverEmojiData? [emojiCode]? .first; // TODO(log) if null
408
+
399
409
void setServerEmojiData (ServerEmojiData data) {
400
410
_serverEmojiData = data.codeToNames;
401
411
_popularCandidates = null ;
Original file line number Diff line number Diff line change @@ -331,6 +331,30 @@ void main() {
331
331
});
332
332
});
333
333
334
+ group ('getUnicodeEmojiNameByCode' , () {
335
+ test ('happy path' , () {
336
+ final store = prepare (unicodeEmoji: {
337
+ '1f4c5' : ['calendar' ],
338
+ '1f34a' : ['orange' , 'tangerine' , 'mandarin' ],
339
+ });
340
+ check (store.getUnicodeEmojiNameByCode ('1f4c5' )).equals ('calendar' );
341
+ check (store.getUnicodeEmojiNameByCode ('1f34a' )).equals ('orange' );
342
+ });
343
+
344
+ test ('server emoji data present, emoji code not present' , () {
345
+ final store = prepare (unicodeEmoji: {
346
+ '1f4c5' : ['calendar' ],
347
+ });
348
+ check (store.getUnicodeEmojiNameByCode ('1f34a' )).isNull ();
349
+ });
350
+
351
+ test ('server emoji data is not present' , () {
352
+ final store = prepare (addServerDataForPopular: false );
353
+ check (store.debugServerEmojiData).isNull ();
354
+ check (store.getUnicodeEmojiNameByCode ('1f516' )).isNull ();
355
+ });
356
+ });
357
+
334
358
group ('EmojiAutocompleteView' , () {
335
359
Condition <Object ?> isUnicodeResult ({String ? emojiCode, List <String >? names}) {
336
360
return (it) => it.isA <EmojiAutocompleteResult >().candidate.which (
You can’t perform that action at this time.
0 commit comments