text: ﻿// Copyright (c) Microsoft Corporation. All rights reserved.
  // Licensed under the MIT License.
  #include "pch.h"
  #include <../Chakra/Utf8DebugExtensions.h>
  #include <CppUnitTest.h>
  #include <string>
  #include <vector>
  
  using namespace facebook::react;
  using namespace Microsoft::VisualStudio::CppUnitTestFramework;
  using namespace std;
  
  vector<string> SAMPLE_STR = {
      // Here we are testing some random ASCII characters, emojis, Chinese,
      // Russian, Japanese, Greek, Hebrew, Polish, Serbian, Norwegian, a very long
      // string and empty string.
      u8"21QQYrTfnTS2kKSb47H3mJs0NxfyMBYIkX1pTCuDeVHYqLhQhUo8OObPz8M8tZy2kJrFRy94JQuWH5yUivxkBsXAblv0TqvNwLOpq1Rgx5l6LNc8AMByHXk814GmcoKr",
      u8"ZR6ztxV2QksUIS1HHSQFL8uTXy2Tb23Vq3uuJlpwGAFtCPkVnMC7zf87eZSzLJFwNa4WKGZ6gkpBPPqsVUFJlVHwEAMMiYUUqb5JYi4tTsOgfV2q4lLC0j9QeDwTCN7Y",
      u8"🍅❓Ⓠ〰️®️✝️📧🌱⛎ℹ️🅾️🅿️🅰️💰↩️Ⓕ⛽️♓️☔Ⓚ🕒💤❌☪️♈️Ⓑ📈♍️",
      u8"😀 😁 😂 🤣 😃 😄 😅 😆 😉 😊 😋 😎 😍 😘 😗 😙 😚 ☺️ 🙂 🤗 🤔 😐 😑 😶 🙄 😏 😣 😥 😮 🤐 😯 😪 😫 😴 😌 😛 😜 😝 🤤 😒 😓 😔 😕 🙃 🤑 😲 ☹️ 🙁 😖 😞 😟 😤 😢 😭 👨‍👨‍👧‍👦 👨‍👨‍👦‍👦 👨‍👨‍👧‍👧 👩‍👩‍👦 👩‍👩‍👧 👩‍👩‍👧‍👦 👩‍👩‍👦‍👦 👩‍👩‍👧‍👧 👨‍👦 👨‍👦‍👦 👨‍👧 👨‍👧‍👦 👨‍👧‍👧 👩‍👦👩‍👦‍👦👩‍👧👩‍👧‍👦👩‍👧‍👧🤳💪👈👉☝️👆🖕👇✌️🤞🖖🤘🖐✋👌👍👎✊👊🤛🤜🤚👋✍️👏👐🙌🤲🙏🤝💅👂👃👣👀👁👅👄💋👶🍼",
      u8"儿勒屁艾 艾艾西艾 艾艾 西吉艾艾伊娜伊ㄚ口∪尺 れ工匚Ｋ 工れ 匚卄工れモちモ㊜㊒㊘㊕ ㊐㊋㊅㊍ ㊋㊐ ㊅㊊㊋㊐㊇㊖㊇",
      u8"б, в, г, д, ж, з, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ. ЯДЙDФԠ ЯЦSSЇДИ ҪҤДЯДҪГЭЯS rxtGOLmâZY くできやせろびぬぴぜ",
      u8"Νερά ψηλά λύπη αφτί ας ψυχή τι λόγω. Του φίλ διά γεφυρώνει ανίχνευση διεύρυνση. Όλο μήπως τομέα πρώτο στους δις νόημα εάν του. Παιδείας ομορφιάς καλύτερα ας με. Παραγωγή προθέαση σε κουλιζάρ παραπάνω υπ. Πώς δικούς στήθος πόντου πως θέατρο θέληση σίδερο. Σιδερένια διηγήσεων ναι δύο επέμβασης καθ ώρα ιδιαίτερα βεβαιώνει θεωρείται. Βλ νερο τη να ύλης μτφρ τέλη. Ας ρόλων τη χώρων υπ αφορά είδος είπεν. ",
      u8"למעלה מנוסה והסוס יעבור הנעשה. רגליים המכולת משונות הדרושה פנימית חודשית. את אל בגידת צד רב בתנאי ונפשו עד שש. או שב גם יד ולטש בשטף אדמת וילך הרשו וכבר. ידו העב לכל והיא ריח פוּ גַּם מַה זרמי רחץ ודה. ערך הלא זהב במבטיהם כבן בַּכֹּל הגאיוני ספק פרש קצה שנת. ",
      u8"Daje puściliśmy angielskiego służącéj Mury zostawioném sine sejm złotogłów Nogi. Białopiotrowiczowi farb dali jest kart nię. Póki śnie niewidział publicznych grzmi głos myśliwców czaty. Widzę Białopiotrowiczem panów Dozoru śrót ranną szyją. Drobnemi wyznania jedwab schowany różowe potokiem podawano wiarę schyla szepce czasem martwy. Król spokojniejszych rosciągnionych ciemnozieloném obrok kilkn wcale pokrewieństwem Musim echem niepowiedziała. Zbyt lecz noty nowe kula nóg Znam. Sama rumieńcem Zaszumiał lśnących Zbyt skórzaną młodzież nosy. Powoli Waść siadł Anglii robota twarze. ",
      u8"Плоть взята ее яд Тя ли их Одним Ни ИЗ ликом мя броня. . Воли Вы Ты тула душе Уж неба уз соты блат. Слетите отвечал богатых. Сем при глад ГРОМ дела Дуб чашу рок тел сны ров. Своих малых Приди враги. . По ты ум ﻿Кто то же ее. ",
      u8"Ове Као међ језераца метеризи положене лед има упорство ред. Већ moschatus Сви сва Dwellings giganteum муљ. Ursus Bison alces ~ПРВОБИТНА Jolly Eleph Munro. Сл те би лице сиге Сохе сати тиме на То за веку. Рипе Снег лек међ код Доњи већ виле итд. Употреба Но кватерно кречњака друкчија им Он Ми. Пак megaceros има Hipparion бар moschatus amphibius giganteum europaeus све. Hipparion spelea giganteum нам Dwellings moschatus још ова ову. Ursus дрвета дрвено alces Jolly Eleph Munro шљунка судова Bison. Коњ Ако ватра“ „Усред чак eximia или. ",
      u8"æ«ââèêøóòôå",
      u8"誨 後竊聽 ﻿白圭志 」 關雎 不稱讚 覽 曰： 第十一回 矣 出 耳. 關雎 」 事 ，可 意 誨 出. 樂而不淫 危德至 ﻿白圭志 後竊聽 分得意. 汗流如雨 吉安而來 父親回衙. 去 矣 覽 曰： 事. 父親回衙 意 玉，不題 汗流如雨 矣 」 覽 誨 去 吉安而來 出 冒認收了. 冒認收了 吉安而來 父親回衙 玉，不題 汗流如雨. 以測機 分得意 建章曰： 在一處. 分得意 建章曰： 第十一回 在一處 樂而不淫 後竊聽. 第十一回 訖乃返 分得意 建章曰：. 意 矣 曰： 耳 誨 去 」 事. 德泉淹 曰： 耳 第七回 招」 出 第五回 ，可 矣 意 」 誨. 父親回衙 汗流如雨 吉安而來 玉，不題 冒認收了. ",
      u8"，可 第七回 貢院 去 第四回 第二回 出 」. 訖乃返 後竊聽 危德至 分得意 樂而不淫. 」 出 意 ，可. 此是後話 ，愈聽愈惱 也懊悔不了 饒爾去罷」. 第三回 第五回 第二回 了」. 玉，不題 事 汗流如雨 去 冒認收了 耳 吉安而來 意 誨 出. 矣 」 出 意. 曰： 意 饒爾去罷」 事 此是後話 出 去 ，愈聽愈惱 也懊悔不了. 也懊悔不了 饒爾去罷」 ，愈聽愈惱. 耳 」 ，可 誨. 覽 耳 曰： 矣 意. 曰： 覽 出 耳 ，可. 覽 耳 曰： ，可 去 意 誨 事. 去 矣 誨 曰： 耳. 關雎 覽 」 事. 」 關雎 不稱讚 第十一回 覽 以測機 訖乃返 ﻿白圭志 分得意 ，可. 驚異 覽 耳 事 貢院 第六回 」 出 關雎 了」 第七回. 羨殺 第九回 相域 驚異 了」 德泉淹. 饒爾去罷」 關雎 此是後話 誨 也懊悔不了 ，愈聽愈惱 出 去. 覽 曰： 矣 誨 出.樂而不淫 第十一回 在一處 訖乃返 建章曰：.耳 去 事 後竊聽 」 矣 第十一回 樂而不淫.誨 關雎 去 矣.耳 誨 去 ，可 覽 曰：.出 意 誨 去 ，可 曰： 耳 事.覽 關雎 誨 事 」.建章曰： 樂而不淫 分得意.矣 ，可 饒爾去罷」 出 也懊悔不了 此是後話 ，愈聽愈惱 去.第九回 第六回 不題 招」 第七回 德泉淹.去 覽 羨殺 招」 第九回 意 第八回 」 矣 耳 曰： 第六回.事 曰： 後竊聽 」 意 ﻿白圭志 訖乃返 耳 第十一回 樂而不淫 去.耳 矣 覽 誨 事 關雎 曰： 」.，可 關雎 建章曰： 去 己轉身 覽 事 ﻿白圭志 以測機 分得意 樂而不淫 矣 耳 」.父親回衙 吉安而來 玉，不題 冒認收了 汗流如雨.耳 」 矣 事 意 出.冒認收了 玉，不題 父親回衙.吉安而來 汗流如雨 父親回衙 玉，不題 冒認收了.曰： ，可 關雎 意 」 出 覽 矣. Ярмом Венец Клоню часть славы средь.Ее скрепим спокоен Их ст Ангелов явленья То обитает на.Устройство поклоненья бесконечно презренным Отверзлись наполняешь. ..Посвятясь Род Див искренних чел потрясают Арф судилищах.Ниспошли насажден вздыхать Последуя..Звучней Господу ах Из за но Взжигай ея Ту возношу.Но ее Те То НА ту не яр.Вы ах Но во блаженстве воскрешает за Аз милосердие ею МЕЩЕРСКОГО воскресясь.Уж почитает За Ту истлеваю происшел бы.Те Но вы за Ум.Кои душ риз Шум.По Ни их ко из дальнейшие Но Ее всеконечно бледностью ты.Миг Снедает сей всю тму кротким Ходатай чуд громады.До Ах на Мы уж Он ль Со.Та ИЗ оспорить вселенну гл ты Уж погибают называем.Сие Ограждал праотцев ней тон мог Бледнеет она дал привесть тук пал благости Подвигни.Ухищреньем вознесется душ жив Злы Благословя кущ сил утесненных Муж блаженстве устремился.Как мои эхо уха.Питатель ей По Да спокойно Ты те ВВЕДЕНИЕ НА ах же.Ток гул иду рок сих.Дал ран Стрегущи Крепость сие Божеству действий Бог риз оны.Кое под Уже чьи еще.Объявил цевницы ей несется Блеснет по Да По подпора пройдет Им.Мне Обратится СЕТОВАНИЕ вой поя Взгляните ини вне.Во яд Мы же По до..Со Мы Вы То он да Но Им.Сем Кои василисков потряслась уму гор уха под тме ПРАВОСУДИЕ мою стряхнутся.Неверие Мир Сын посетит Они Меч Яры находит.Ли ад Но Ум Мы ее ст.Мой ток мое Нем поклоняюсь бег сад царствуешь сотворится Соделалось ПОБЕДИТЕЛЮ душ Яры всесильным.Чтя мир Род пал Мне кем зде.Гл Вы ﻿Кто но бы Аз мя ад.Муж ног ней гул вот.Их ни Ум мя ах.Ни до ах от Ах об се Ты.Бог над Мой тощ риз Гул вне.Же Он во та то..Увы ней чая бег цел где Кем эхо. ..Объятие имя Чья цел мирские бояться она тел.Дел мое роз вам жен дух див. .Спустились низвергнул ВЕЛИЧЕСТВО рассуждает неимоверна.﻿кто из Но Ту ею Ея Из вы им.Сии Сын ему Лию сын увы кит.Тме сие Дух лия это Душ дна рек. ..Терновых весельем опустели за ее Небесная ей Да блистали нисходят Ту Ум.Наполняяй тех сей поя Несметных отлученье жег исчислить сокровище утешитель.Ее Ко бы Се..Покрылся восходит скорбеть трисвяту.Ни вожу яр рдел очам ни мя Ум Паче Се Даст люди.Ль он Во Аз.Жил Моя лиц лес иду жег.Вся единым рай Имя стезею дым грозно.Же ИЗ день он слов Тя не Царь дуть Кого.Муж Зри меж вод ров ков.Дав Зло мое врагу все Все даешь Древа Зорят Час.Роз оно врагам иду Объяты гореть терзав вод сделал.Тех ими быв мог.Тощ вот мир зло.Нощь Дочь бьет Свет сшел.Чая Был Тот сна выя чин..Ст та ее мы.Ρεαλισμός ως εμπειρίες συνείδηση στιγμιαία ευγένειας αρ συμβαίνει.Ταυτίζεται καθίσταται όλα παιγνιώδης λογοτεχνών δεν ενώ νέα.Ύπαρξη τις ηθικές την του ομάδες χωρική.Οι τη γενιάς ηθικής θα άλλοτε άδειου κίνησή.Πειστική πλοκάμια το καθαυτής αν αρ.Χώρα στον πι το εν πήρε μέσω ότου μέλη.Όλη σχολικά αντλούν την γέροντα κώδικες.Βλ να αδακά σο τύπου τολμά λάβει εβγάλ.Αγαπά μάγον στα για μερ θλίψη ήσυχα.Με αρ όψεις αυτών χαθεί νόημα κι επαφή.Πολιτικές να βιαστικές κι υψηλότερο μελετητές διατήρηση πω το.Ασυνήθιστη κοινωνικών υπό όλα θεωρητικοί υποθετικού παλαιότερα φιλολογική.Τράβηξε έστελνε τι ανέλιξη σο διάφορα ακροατή αλλαγές ας.Ούτε πει όλη και τσεν τις ωχρό.Κόσμου κόκκος τη οποίας τίτλος έν έπεται κι κανείς.Εάν πρώτο κλαίω πια οποίο ήξερε απ΄ απλώς τυχόν.Τότε την πήρε μερ ούτε θεός.Έργου μη κύριο κύρια ατ ήθελε ευτάς να.Πιο τόζλουτζας μια μικρόκοσμο συναντούμε διηγήματος από όλα.Δόσιμο δάκρυα πώς έκρυβε ροζ πρέπει και επί.Κινήματος το παράλληλα μαρτυρούν με περίτεχνο.Έτον έναν ου έτσι όπου αφού ως.Εξελικτική να το υπερφυσικό καταθέσουν καπετάνιου εντάσσεται υποσχέθηκε.Θα παρόμοια κόνσολον ρητορική ας καλύτερη ανάγνωση οι.Επούλ του τάξης σοφία βράδυ προ που πηγές όλα.Τα εκ σε ακούμε μορφής γενιάς.Κατά τάση πήγε εφ νέου θα μόνο νέας.Ροζ προπαντός υπό πολυφωνία παρατηρεί φίλ κατασκευή θεωρητική.Συν αντίστροφα μια λασπωμένες κατ διανοητικά μια.Μετάβαση όλο συμβολής προ απαγωγέα διήγησης ευρύτερο.Διάφορες και πρόσφατο όσο μετάβαση δυνητική ναι μητρικές.Χρειάζεσθε μου την υποτίθεται κλπ που παραμυθιού.Προκύψει εκ κι ευελιξία το σε ιστορικά ιστορικό.Διά πια πλήρει ισχυρό έζησαν σην ανάγκη καθ.Μη παράδοξη οφείλουν οι ευέλικτη ιι.Όλα προοπτική του νεότερους βασίζεται νέα παράλληλα.Ως πραγματικό παραπέμπει ας ου αναγνωστών λογοτεχνία.Στο άξιος εδώ ευρήκ δίοδο αρετή είχαν φάρσα.Γιαννίτς όσο τράνταξε υπό για δις ανάδοχου αφετέρου βιάστηκε ιστορικο.Εφτά φίλ λύπη αυτή ενώ όμως δύο δις.Ζωή γυναίκας αναδόχου μην στοιχείο.Εκφραστικό αρ ου θα ανέκφραστη πι επικρατούν στρατηγική υποβλητικό.Προκύψει να ωμότητες συνήθιζε μη εξαιτίας ανέδειξε.Εμφανής ευτελής χιούμορ αν θεωριών να ου.Διαδίκτυο παιχνίδια παραμένει αν αρ.Επιβληθούν κατασκευής προέρχεται το απ μαθητεύσει διηγημάτων ατ με.Υπ άντλησης ορίζεται κειμένου αλήθειες σο.Ροή έξω δις εξής αργά έργο του.Μικρούς αφορούν μαγικού στα κωμωδία αρχίζει πια.Εφ συνδέοντας σε αρ κατακλυσμό λογοτεχνία παραλλαγές ενδιαφέρον αισθάνεται.Ιστορικά τα δεύτερον νοημάτων πνιγμένο τι νε.Σε πολλαπλούς τι απευθύνουν μεγαλύτερο εκφραστικό.Θα εύθραυστη τα μεταβολές φουσκάλες γνωστικής.Διηνεκή μελέτης φόρεμαν πρόσωπα ας οι εξορίες πα επώνυμη.Σοφίας αντοχή μαγεία ως τριπλή οι.Προκύπτει μπαστούνι έν με φοβετζέας εν ισορροπία.Ου οράματος παράδοση καλώντας τη.Στάσης εκ μαγεία με μαρίτσ τα το μηνύει γόνατό.Κοίταζαν παιδικής ξαντίνου θα κινήσεις αν περίοδος.Ορατό ώμους χλομό πίστη εν αρχής άλλες το.Μπροστά όλα κεί βλέπετε σπιτιού.Αρ παρήγαγε το νε κάποιους διαφέρει.Εύθραυστη συναλλαγή κυριαρχία ζώγ για και συνείδηση διηγήσεων.Τα τα με σύμβαση παγίωση αν ανάμεσα.Ακούμε ταφικά τη πρέπει εφ με φεύγει μεγάλη.Άμαν του εδώ μαμά νέοι και καθ άλλο.Παραμυθιού ενοχλήσεις ταυτότητάς σε τα θα κι συγγραφική.Αναφορές πα σκοτωθεί γέροντες απαγωγής πρακτική να.Ακατόρθωτο λογοτεχνία ως οικογένειά με χολάσκεται σο να.Τον απ΄ εις μένει πει επικό ζωηρό.Ηρωίδας δεύτερη παιδικό ένα ρου.Παιγνιώδης δημιουργία επί στο παρατήρηση νέο αναφέρθηκε δεν.Ενώ πατρικές γλωσσική εκκίνηση απόλαυση άγνωστες στα ροζ.Εντάμωσεν αναδύεται πολυφωνία κι ως αποβαίνει πι απόσπασμα μπρούμυτα ατ.Νέα χλομό όλη ατο άμεσα εντός πλέον κυρία αγαπά κλπ.",
      u8""};
  
  TEST_CLASS(StringConversionTest_Universal) {
   private:
    JsRuntimeHandle runtime;
  
    TEST_METHOD_INITIALIZE(Setup) {
      JsContextRef context;
  
      unsigned currentSourceContext = 0;
  
      // Create a runtime.
      JsCreateRuntime(JsRuntimeAttributeNone, nullptr, &runtime);
      // Create an execution context.
      JsCreateContext(runtime, &context);
      // Now set the current execution context.
      JsSetCurrentContext(context);
    }
  
    TEST_METHOD_CLEANUP(TearDown) {
      // Dispose runtime
      JsSetCurrentContext(JS_INVALID_REFERENCE);
      JsDisposeRuntime(runtime);
    }
  
    TEST_METHOD(StringConversionTest_UniversalTest) {
      JsValueRef value;
      string str;
      for (int i = 0; i < SAMPLE_STR.size(); i++) {
        JsPointerToStringUtf8(
            SAMPLE_STR[i].c_str(), SAMPLE_STR[i].length(), &value);
        JsStringToStdStringUtf8(value, str);
        Assert::IsTrue(str.compare(SAMPLE_STR[i]) == 0);
      }
    }
  };
  