public void Get_EndPointHasTwoSegments_Works()
        {
            var result = ApiTest.GetString(_server, endPoint: "parent/child", query: "color=blue", returnType: ApiTest.ContentType.Text,
                                           handler: request => request.PostSucceeded());

            Assert.That(result, Is.EqualTo("OK"));
        }
Пример #2
0
        public void HandleCurrentBookStatus_LockedByRealUser_StatusIndicatesThatuser()
        {
            var originalValue = SIL.Windows.Forms.Registration.Registration.Default.Email;

            try
            {
                SIL.Windows.Forms.Registration.Registration.Default.Email = "*****@*****.**";

                var apiBuilder = new TeamCollectionApiBuilder().WithDefaultMocks(true);
                var api        = apiBuilder.Build();
                api.RegisterWithApiHandler(_server.ApiHandler);

                var mockTeamCollection = SetupMockTcForBookStatus(apiBuilder);
                mockTeamCollection.Setup(x => x.WhoHasBookLocked(It.IsAny <string>())).Returns("*****@*****.**");
                mockTeamCollection.Setup(x => x.WhatComputerHasBookLocked(It.IsAny <string>())).Returns("Other's Computer");

                // System Under Test
                var result = ApiTest.GetString(_server, endPoint: "teamCollection/selectedBookStatus", returnType: ApiTest.ContentType.Text);

                // Verification
                StringAssert.Contains("\"who\":\"[email protected]\"", result);
            }
            finally
            {
                // Cleanup
                SIL.Windows.Forms.Registration.Registration.Default.Email = originalValue;
            }
        }
        public void Get_EndPointCaseIsIgnored()
        {
            var result = ApiTest.GetString(_server, endPoint: "fooBAR", endOfUrlForTest: "FOObar",
                                           handler: request => request.PostSucceeded());

            Assert.That(result, Is.EqualTo("OK"));
        }
Пример #4
0
        public void HandleGetLog_NonZeroMessages_MessagesReturned()
        {
            var apiBuilder = new TeamCollectionApiBuilder().WithDefaultMocks();
            var api        = apiBuilder.Build();

            api.RegisterWithApiHandler(_server.ApiHandler);

            var mockMessageLog = new Mock <ITeamCollectionMessageLog>();

            apiBuilder.MockTeamCollectionManager.SetupGet(x => x.MessageLog).Returns(mockMessageLog.Object);
            mockMessageLog.Setup(x => x.GetProgressMessages()).Returns(
                new BloomWebSocketProgressEvent[]
            {
                new BloomWebSocketProgressEvent("unused", ProgressKind.Progress, "1"),
                new BloomWebSocketProgressEvent("unused", ProgressKind.Progress, "2")
            }
                );

            // System Under Test
            var result = ApiTest.GetString(_server, endPoint: "teamCollection/getLog", returnType: ApiTest.ContentType.JSON);

            // Verification
            var deserializedArray = JsonConvert.DeserializeObject <BloomWebSocketProgressEvent[]>(result);
            var messages          = deserializedArray.Select(x => x.message).ToArray();

            CollectionAssert.AreEqual(new string[] { "1", "2" }, messages);
        }
Пример #5
0
        public void RunCopyFileCompletesSuccessfullyTest(string baseName)
        {
            // Setup
            string sourceFolderName = $"{baseName} Folder";
            string sourceFileName   = $"{baseName} audio.mp3";
            string collectionName   = $"{baseName} Collection";
            string bookTitle        = $"{baseName} Book";

            (string sourceFilePath, string destDirPath) = SetupCopyFileTests(sourceFolderName, sourceFileName, collectionName, bookTitle);
            string encodedSourceFilePath = EncodeFilenameForHttpRequest(sourceFilePath);

            string destFilePath        = Path.Combine(destDirPath, "fa22704c-6f27-4c1f-9f1b-7eb62baf2fde.mp3");
            string encodedDestFilePath = EncodeFilenameForHttpRequest(destFilePath);

            string jsonData = $"{{ \"from\": \"{encodedSourceFilePath}\", \"to\": \"{encodedDestFilePath}\" }}";

            // System Under Test //

            // Debugging tip: If debugging with breakpoints, set the timeout to some high value
            int?timeoutInMilliseconds = null;
            var result = ApiTest.PostString(_server, "fileIO/copyFile", jsonData, ApiTest.ContentType.JSON, timeoutInMilliseconds: timeoutInMilliseconds);

            // Verification
            Assert.That(result, Is.EqualTo("OK"), "Request should reply \"OK\" if successful");
            Assert.That(File.ReadAllText(destFilePath), Is.EqualTo("fakeSourceFileContents"), "Contents of copied file were not as expected.");
        }
        public void Get_RegexEndPoint()
        {
            var result = ApiTest.GetString(_server, endPoint: "foo[0-9]bar", endOfUrlForTest: "foo7bar",
                                           handler: request => request.PostSucceeded());

            Assert.That(result, Is.EqualTo("OK"));
        }
Пример #7
0
        static void OnMessage(BaseMessage bm)
        {
            switch (bm.msg)
            {
            case LocalMsg.OnOpen:
                Console.WriteLine("Connection Open");
                ApiTest.SetBackground();
                //ApiTest.NextExpression();
                //ApiTest.RegisterModelEventListener();
                //ApiTest.SetPosition();
                //ApiTest.StartMotion(0, "tap_head");
                //ApiTest.StartMotion(1, "motions/haru_normal_01.mtn");
                //ApiTest.ShowTextBubble();
                break;

            case LocalMsg.OnError:
            case LocalMsg.OnClose:
                Environment.Exit(0);
                break;

            case Msg.OnModelEvent:
                ModelEvent evt = bm.GetData <ModelEvent>();
                if (evt != null)
                {
                    Console.WriteLine(evt.ToString());
                }

                ApiTest.UnregisterModelEventListener();
                break;

            case Msg.ShowTextBubble:
                Console.WriteLine(string.Format("msgId: {0}, data: {1}", bm.msgId, bm.IntValue));
                break;
            }
        }
Пример #8
0
        public void HandleCurrentBookStatus_LockedByFakeUser_FakeUserConvertedToCurrentUser()
        {
            var originalValue = SIL.Windows.Forms.Registration.Registration.Default.Email;

            try
            {
                SIL.Windows.Forms.Registration.Registration.Default.Email = "*****@*****.**";

                var mockBook = new Mock <Bloom.Book.Book>();
                mockBook.Setup(m => m.IsSaveable).Returns(true);
                mockBook.Setup(m => m.FolderPath).Returns("");
                var mockBookSelection = new Mock <BookSelection>();
                mockBookSelection.Setup(m => m.CurrentSelection).Returns(mockBook.Object);

                var apiBuilder = new TeamCollectionApiBuilder().WithDefaultMocks(true).
                                 WithBookSelection(mockBookSelection.Object);
                var api = apiBuilder.Build();
                api.RegisterWithApiHandler(_server.ApiHandler);

                var mockTeamCollection = SetupMockTcForBookStatus(apiBuilder);
                mockTeamCollection.Setup(x => x.WhoHasBookLocked(It.IsAny <string>())).Returns("this user");
                mockTeamCollection.Setup(x => x.WhatComputerHasBookLocked(It.IsAny <string>())).Returns("My Computer");

                // System Under Test
                var result = ApiTest.GetString(_server, endPoint: "teamCollection/selectedBookStatus", returnType: ApiTest.ContentType.Text);

                // Verification
                StringAssert.Contains("\"who\":\"[email protected]\"", result);
            }
            finally
            {
                // Cleanup
                SIL.Windows.Forms.Registration.Registration.Default.Email = originalValue;
            }
        }
Пример #9
0
        public void Should_Test_Api()
        {
            IyzipayResource iyzipayResource = ApiTest.Retrieve(options);

            PrintResponse <IyzipayResource>(iyzipayResource);

            Assert.IsNotNull(iyzipayResource.SystemTime);
            Assert.AreEqual(Status.SUCCESS.ToString(), iyzipayResource.Status);
        }
Пример #10
0
        public void ReportHeadingHtml_GivenUnencodedHtmlInSummary_EncodesTheHtml()
        {
            bool isSummaryPreEncoded = false;

            SetupApiHandler(GetDefaultBookSelection());

            ProblemReportApi.GatherReportInfoExceptScreenshot(null, "Fake Details", "Fake Problem: See <a href=\"http://bloomlibrary.org\">Bloom Library</a> for help", isSummaryPreEncoded);
            var result = ApiTest.GetString(_server, "problemReport/reportHeadingHtml");

            Assert.That(result, Is.EqualTo("Fake Problem: See &lt;a href=&quot;http://bloomlibrary.org&quot;&gt;Bloom Library&lt;/a&gt; for help"));
        }
        public void Post_JSON_JSONReceived()
        {
            var result = ApiTest.PostString(_server, endPoint: "test", data: "{\"color\": \"blue\"}", returnType: ApiTest.ContentType.JSON,
                                            handler: request =>
            {
                var requiredPostJson = request.RequiredPostJson();
                request.ReplyWithText(DynamicJson.Parse(requiredPostJson).color);
            });

            Assert.That(result, Is.EqualTo("blue"));
        }
Пример #12
0
 static void Main(string[] args)
 {
     ApiTest runTest = new ApiTest();
     runTest.runTest();
     //PerformanceTest performanceTest = new PerformanceTest();
     //performanceTest.runTest();
     while (true)
     {
         Thread.Sleep(100);
     }
 }
Пример #13
0
        public void ReportHeadingHtml_GivenPreEncodedHtmlInSummary_ReturnsRawHtmlDirectly()
        {
            bool isSummaryPreEncoded = true;

            SetupApiHandler(GetDefaultBookSelection());

            ProblemReportApi.GatherReportInfoExceptScreenshot(null, "Fake Details", "Fake Problem: See <a href=\"http://bloomlibrary.org\">Bloom Library</a> for help", isSummaryPreEncoded);
            var result = ApiTest.GetString(_server, "problemReport/reportHeadingHtml");

            Assert.That(result, Is.EqualTo("Fake Problem: See <a href=\"http://bloomlibrary.org\">Bloom Library</a> for help"));
        }
Пример #14
0
        public void HandleRepoFolderPath_NullCurrCollection_ReturnsEmptyString()
        {
            var apiBuilder = new TeamCollectionApiBuilder().WithDefaultMocks();
            var api        = apiBuilder.Build();

            api.RegisterWithApiHandler(_server.ApiHandler);

            // System Under Test
            var result = ApiTest.GetString(_server, endPoint: "teamCollection/repoFolderPath", returnType: ApiTest.ContentType.Text);

            Assert.That(result, Is.EqualTo(""));
        }
        public void Get_OneParameter_KeyValueReceived()
        {
            var result = ApiTest.GetString(_server, endPoint: "test", query: "color=blue", returnType: ApiTest.ContentType.Text,
                                           handler: request =>
            {
                Assert.That(request.RequiredParam("color"), Is.EqualTo("blue"));
                request.ReplyWithText(request.RequiredParam("color"));
            }
                                           );

            Assert.That(result, Is.EqualTo("blue"));
        }
Пример #16
0
        public void Should_Test_Api()
        {
            IyzipayResource iyzipayResource = ApiTest.Retrieve(options);

            PrintResponse <IyzipayResource>(iyzipayResource);

            Assert.AreEqual(Status.SUCCESS.ToString(), iyzipayResource.Status);
            Assert.AreEqual(Locale.TR.ToString(), iyzipayResource.Locale);
            Assert.IsNotNull(iyzipayResource.SystemTime);
            Assert.IsNull(iyzipayResource.ErrorCode);
            Assert.IsNull(iyzipayResource.ErrorMessage);
            Assert.IsNull(iyzipayResource.ErrorGroup);
        }
Пример #17
0
        public async Task Should_Test_Api()
        {
            IyzipayResource iyzipayResource = await ApiTest.RetrieveAsync(Options);

            PrintResponse(iyzipayResource);

            Assert.AreEqual(Status.SUCCESS.ToString(), iyzipayResource.Status);
            Assert.AreEqual(Locale.TR.ToString(), iyzipayResource.Locale);
            Assert.IsNotNull(iyzipayResource.SystemTime);
            Assert.IsNull(iyzipayResource.ErrorCode);
            Assert.IsNull(iyzipayResource.ErrorMessage);
            Assert.IsNull(iyzipayResource.ErrorGroup);
        }
Пример #18
0
        static void OnMessage(BaseMessage bm)
        {
            switch (bm.msg)
            {
            case LocalMsg.OnOpen:
                ApiTest.SetBackground();
                break;

            case LocalMsg.OnError:
            case LocalMsg.OnClose:
                Environment.Exit(0);
                break;
            }
        }
Пример #19
0
        public void HandleIsTeamCollectionEnabled_ExceptionThrown_RequestFailed()
        {
            var apiBuilder = new TeamCollectionApiBuilder().WithDefaultMocks();
            var api        = apiBuilder.Build();

            api.RegisterWithApiHandler(_server.ApiHandler);

            apiBuilder.MockTeamCollectionManager.SetupGet(x => x.CurrentCollectionEvenIfDisconnected).Returns(() => throw new ApplicationException());

            // System Under Test
            TestDelegate systemUnderTest = () => ApiTest.GetString(_server, endPoint: "teamCollection/isTeamCollectionEnabled", returnType: ApiTest.ContentType.Text);

            Assert.Throws(typeof(System.Net.WebException), systemUnderTest);
        }
Пример #20
0
        public void HandleIsTeamCollectionEnabled_NoCollection_ReturnsFalse()
        {
            var apiBuilder = new TeamCollectionApiBuilder().WithDefaultMocks();
            var api        = apiBuilder.Build();

            api.RegisterWithApiHandler(_server.ApiHandler);

            // apiBuilder.MockTeamCollectionManager.Object.CurrentCollectionEvenIfDisconnected hasn't been changed,
            // so it will return null

            // System Under Test
            var result = ApiTest.GetString(_server, endPoint: "teamCollection/isTeamCollectionEnabled", returnType: ApiTest.ContentType.Text);

            Assert.That(result, Is.EqualTo("false"));
        }
Пример #21
0
        public void HandleGetLog_NullMessageLog_RequestFailed()
        {
            var apiBuilder = new TeamCollectionApiBuilder().WithDefaultMocks();
            var api        = apiBuilder.Build();

            api.RegisterWithApiHandler(_server.ApiHandler);

            apiBuilder.MockTeamCollectionManager.SetupGet(x => x.MessageLog).Returns((ITeamCollectionMessageLog)null);

            TestDelegate systemUnderTest = () =>
            {
                ApiTest.GetString(_server, endPoint: "teamCollection/getLog", returnType: ApiTest.ContentType.JSON);
            };

            Assert.Throws(typeof(System.Net.WebException), systemUnderTest);
        }
Пример #22
0
        public void HandleRepoFolderPath_NonNullCurrCollection_ReturnsRepoDescription()
        {
            var apiBuilder = new TeamCollectionApiBuilder().WithDefaultMocks();
            var api        = apiBuilder.Build();

            api.RegisterWithApiHandler(_server.ApiHandler);

            var mockTeamCollection = new Mock <Bloom.TeamCollection.TeamCollection>();

            mockTeamCollection.SetupGet(x => x.RepoDescription).Returns("Fake Description");

            apiBuilder.MockTeamCollectionManager.SetupGet(x => x.CurrentCollectionEvenIfDisconnected).Returns(mockTeamCollection.Object);

            // System Under Test
            var result = ApiTest.GetString(_server, endPoint: "teamCollection/repoFolderPath", returnType: ApiTest.ContentType.Text);

            Assert.That(result, Is.EqualTo("Fake Description"));
        }
Пример #23
0
        public void HandleIsTeamCollectionEnabled_CurrentSelectionNull_ReturnsTrue()
        {
            var apiBuilder = new TeamCollectionApiBuilder().WithDefaultMocks();
            var api        = apiBuilder.Build();

            api.RegisterWithApiHandler(_server.ApiHandler);

            var mockTeamCollection = new Mock <Bloom.TeamCollection.TeamCollection>();

            apiBuilder.MockTeamCollectionManager.SetupGet(x => x.CurrentCollectionEvenIfDisconnected).Returns(mockTeamCollection.Object);

            // apiBuilder.MockBookSelection.Object.CurrentSelection will return null

            // System Under Test
            var result = ApiTest.GetString(_server, endPoint: "teamCollection/isTeamCollectionEnabled", returnType: ApiTest.ContentType.Text);

            Assert.That(result, Is.EqualTo("true"));
        }
Пример #24
0
        public void HandleCurrentBookStatus_InsufficientRegistration_RequestFails()
        {
            var originalValue = SIL.Windows.Forms.Registration.Registration.Default.Email;

            try
            {
                SIL.Windows.Forms.Registration.Registration.Default.Email = "";

                var api = new TeamCollectionApiBuilder().WithDefaultMocks().Build();
                api.RegisterWithApiHandler(_server.ApiHandler);

                // System Under Test
                TestDelegate systemUnderTest = () => ApiTest.GetString(_server, endPoint: "teamCollection/currentBookStatus", returnType: ApiTest.ContentType.Text);

                Assert.Throws(typeof(System.Net.WebException), systemUnderTest);
            }
            finally
            {
                SIL.Windows.Forms.Registration.Registration.Default.Email = originalValue;
            }
        }
Пример #25
0
 protected Scenario(ScenarioBuilder builder, ApiTest api, ITestOutputHelper output)
 {
     this.builder = builder;
     Api          = api;
     this.output  = output;
 }
Пример #26
0
        public void IsReceivingApiCalls()
        {
            var result = ApiTest.GetString(_server, "readers/io/test");

            Assert.That(result, Is.EqualTo("OK"));
        }
Пример #27
0
        public void GetTextOfContentPagesAsJson_OmitsUnwantedPages()
        {
            var htmlLeveledReader = $@"<html><head><meta charset='UTF-8'></meta></head>
<body class='leveled-reader' data-l1='en' data-l2='fr' data-l3='es'>
    <!-- ignore page with bloom-frontMatter class -->
    <div class='bloom-page bloom-frontMatter' id='b8408838-e9ed-4d76-bb8a-24ad0708b329' lang='fr'>
        <div class='marginBox'>
            <div class='bloom-translationGroup bookTitle' data-default-languages='V,N1'>
                <div class='bloom-editable bloom-content1 bloom-visibility-code-on' lang='en'>
                    <p>Level Two</p>
                </div>
            </div>
            <div class='bloom-imageContainer' title='Name: aor_IN16.png'>
                <img src='aor_IN16.png'></img>
                <div class='bloom-translationGroup bloom-imageDescription'>
                    <div class='bloom-editable bloom-content1 bloom-visibility-code-on' lang='en'>cat</div>
                </div>
            </div>
        </div>
    </div>
    <!-- ignore page with bloom-nonprinting class -->
    <div class='bloom-page bloom-noreader bloom-nonprinting screen-only' id='33b7e4c5-6cd1-4611-a50f-85837143cbf6' lang=''>
        <div class='pageLabel' data-i18n='TemplateBooks.PageLabel.Translation Instructions' lang='en'>Translation Instructions</div>
        <div class='marginBox'>
            <div class='split-pane-component-inner'>
                <div class='bloom-translationGroup' data-default-languages='*'>
                    <div class='bloom-editable bloom-content1 bloom-visibility-code-on' data-book='' lang='en' contenteditable='true'>
                        <p>Instructions in vernacular language ...</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- skip over page with no bloom-content1 content apart from image descriptions -->
	<div class='bloom-page numberedPage' id='a2ecb8be-5c7f-440d-9ef5-d503476211cd' data-page-number='1' lang=''>
        <div class='pageLabel' data-i18n='TemplateBooks.PageLabel.Just a Picture' lang='en'>Just a Picture</div>
        <div class='marginBox'>
            <div class='split-pane-component-inner'>
                <div class='bloom-imageContainer' title='Name: aor_acc034m.png'>
                    <img src='aor_acc034m.png' alt='cat staring at something outside the picture'></img>
                    <div class='bloom-translationGroup bloom-imageDescription bloom-trailingElement'>
                        <div class='bloom-editable bloom-content1 bloom-visibility-code-on' lang='en'>
                            <p>cat staring at something outside the picture</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- include content page with bloom-content1 content, ignoring image description -->
    <div class='bloom-page numberedPage' id='85a320a4-b73f-4149-87a1-9a1297ef04b0' data-page-number='2' lang=''>
        <div class='pageLabel' data-i18n='TemplateBooks.PageLabel.Basic Text &amp; Picture' lang='en'>Basic Text &amp; Picture</div>
        <div class='marginBox'>
            <div class='split-pane horizontal-percent'>
                <div class='split-pane-component position-top'>
                    <div class='split-pane-component-inner'>
                        <div class='bloom-imageContainer bloom-leadingElement' title='Name: aor_Cat3.png'>
                            <img src='aor_Cat3.png' alt='cat lying down and staring at you through slitted eyes'></img>
                            <div class='bloom-translationGroup bloom-imageDescription'>
                                <div class='bloom-editable bloom-content1 bloom-visibility-code-on' lang='en'>
                                    <p>cat lying down and staring at you through slitted eyes</p>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class='split-pane-divider horizontal-divider'></div>
                <div class='split-pane-component position-bottom'>
                    <div class='split-pane-component-inner'>
                        <div class='bloom-translationGroup' data-default-languages='auto'>
                            <div class='bloom-editable bloom-content1 bloom-visibility-code-on' id='i57437cd1-c55c-499e-b0c3-d7195fba5f11' lang='en'>
                                <p>A cat stares at you.</p>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- include content page with empty bloom-content1 content, ignoring image description -->
    <div class='bloom-page numberedPage' id='d46e4259-2a99-4197-b21d-bf97a992b7d0' data-page-number='3' lang=''>
        <div class='pageLabel' data-i18n='TemplateBooks.PageLabel.Basic Text &amp; Picture' lang='en'>Basic Text &amp; Picture</div>
        <div class='marginBox'>
            <div class='split-pane horizontal-percent'>
                <div class='split-pane-component position-top'>
                    <div class='split-pane-component-inner'>
                        <div class='bloom-imageContainer' title='Name: aor_ACC029M.png'>
                            <img src='aor_ACC029M.png' alt='cat sleeping in a box that is just large enough'></img>
                            <div class='bloom-translationGroup bloom-imageDescription'>
                                <div class='bloom-editable bloom-content1 bloom-visibility-code-on' lang='en'>
                                    <p>cat sleeping in a box that is just large enough</p>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class='split-pane-divider horizontal-divider'></div>
                <div class='split-pane-component position-bottom'>
                    <div class='split-pane-component-inner'>
                        <div class='bloom-translationGroup' data-default-languages='auto'>
                            <div class='bloom-editable bloom-content1 bloom-visibility-code-on' lang='en'>
                                <p></p>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- include content page with bloom-content1 content and no image -->
    <div class='bloom-page numberedPage' id='5a424678-ec70-4c97-a547-015ff38dfd11' data-page-number='4' lang=''>
        <div class='marginBox'>
            <div class='bloom-translationGroup bloom-trailingElement' data-default-languages='auto'>
                <div class='bloom-editable normal-style bloom-content1 bloom-visibility-code-on' lang='en'>
                    <p>See the two kittens.</p>
                </div>
            </div>
        </div>
    </div>
	<!-- include page with non-vernacular text if it also has vernacular text -->
    <div class='bloom-page numberedPage' id='ebbd7f47-05fa-4e6d-a7a1-cb526bb5efb8' data-page-number='5' lang=''>
        <div class='pageLabel' data-i18n='TemplateBooks.PageLabel.Custom' lang='en'>Custom</div>
        <div class='marginBox'>
            <div class='split-pane horizontal-percent'>
                <div class='split-pane-component position-top'>
                    <div class='split-pane-component-inner' min-width='60px 150px 250px' min-height='60px 150px'>
                        <div class='bloom-translationGroup bloom-trailingElement' data-default-languages='N1'>
                            <div class='bloom-editable bloom-contentNational1 bloom-visibility-code-on' lang='fr'>
                                <p>national language text</p>
                            </div>
                        </div>
                    </div>
                </div>
                <div class='split-pane-divider horizontal-divider' title='33.2%'></div>
                <div class='split-pane-component position-bottom'>
                    <div class='split-pane-component position-top'>
                        <div class='split-pane-component-inner' min-width='60px 150px 250px' min-height='60px 150px'>
                            <div class='bloom-translationGroup bloom-trailingElement' data-default-languages='V'>
                                <div class='bloom-editable bloom-content1 bloom-visibility-code-on' lang='en'>
                                    <p>local language text</p>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
	<!-- ignore page with bloom-ignoreForReaderStats class -->
    <div class='bloom-page numberedPage bloom-ignoreForReaderStats' id='ebad7a47-05fa-4e6d-a7a1-cb526bb5efb8' data-page-number='6' lang=''>
        <div class='pageLabel' data-i18n='TemplateBooks.PageLabel.Custom' lang='en'>Custom</div>
        <div class='marginBox'>
            <div class='split-pane horizontal-percent'>
                <div class='split-pane-component position-top'>
                    <div class='split-pane-component-inner' min-width='60px 150px 250px' min-height='60px 150px'>
                        <div class='bloom-translationGroup bloom-trailingElement' data-default-languages='N1'>
                            <div class='bloom-editable normal-style bloom-contentNational1 bloom-visibility-code-on' lang='fr'>
                                <p>This is in the national language.</p>
                            </div>
                        </div>
                    </div>
                </div>
                <div class='split-pane-divider horizontal-divider' title='33.2%'></div>
                <div class='split-pane-component position-bottom'>
                    <div class='split-pane-component position-top'>
                        <div class='split-pane-component-inner' min-width='60px 150px 250px' min-height='60px 150px'>
                            <div class='bloom-translationGroup bloom-trailingElement' data-default-languages='V'>
                                <div class='bloom-editable normal-style bloom-content1 bloom-visibility-code-on' lang='en'>
                                    <p>This is in the local language.</p>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- ignore page with bloom-backMatter class -->
    <div class='bloom-page titlePage bloom-backMatter' id='0f8d4d80-0519-42b6-bcde-6362b99ed1ff' lang='fr'>
        <div class='pageLabel' lang='en' data-i18n='TemplateBooks.PageLabel.Title Page'>Title Page</div>
        <div class='marginBox'>
            <div class='bloom-translationGroup' data-default-languages='V,N1' id='titlePageTitleBlock'>
                <div class='bloom-editable bloom-content1 bloom-visibility-code-on' lang='en'>
                    <p>Level Two</p>
                </div>
            </div>
        </div>
    </div>
</body></html>
";
            var doc = new XmlDocument();

            doc.LoadXml(htmlLeveledReader);
            var dom     = new HtmlDom(doc);
            var storage = CreateMockStorage(dom, "GetPagesForReader");
            var book    = new Bloom.Book.Book(storage.Object.BookInfo, storage.Object);

            _bookSelection.SelectBook(book);

            var result = ApiTest.GetString(_server, "readers/io/textOfContentPages");

            Assert.That(result, Is.EqualTo("{\"85a320a4-b73f-4149-87a1-9a1297ef04b0\":\"<p>A cat stares at you.</p>\",\"d46e4259-2a99-4197-b21d-bf97a992b7d0\":\"<p />\",\"5a424678-ec70-4c97-a547-015ff38dfd11\":\"<p>See the two kittens.</p>\",\"ebbd7f47-05fa-4e6d-a7a1-cb526bb5efb8\":\"<p>local language text</p>\"}"));
        }
Пример #28
0
 public MintScenario(ScenarioBuilder builder, ApiTest api, ITestOutputHelper output)
     : base(builder, api, output)
 {
     partnerId = builder.Data.PartnerId;
     catalogId = builder.Data.CatalogId;
 }
Пример #29
0
 public RetrieveTokenScenario(ScenarioBuilder builder, ApiTest api, ITestOutputHelper output)
     : base(builder, api, output)
 {
 }
Пример #30
0
        static void Main(string[] args)
        {
            var tester = new ApiTest();

            tester.PerformTest();
        }
Пример #31
0
 public ScenarioBuilder(ApiTest api, ITestOutputHelper output)
 {
     this.api    = api;
     this.output = output;
 }