'use strict'; describe("doc.angularjs.org", function() { describe("API pages", function() { it("should display links to code on GitHub", function() { browser.get('build/docs/index.html#!/api/ng/service/$http'); expect(element(by.css('.improve-docs')).getAttribute('href')).toMatch(/https?:\/\/github\.com\/angular\/angular\.js\/edit\/.+\/src\/ng\/http\.js/); browser.get('build/docs/index.html#!/api/ng/service/$http'); expect(element(by.css('.view-source')).getAttribute('href')).toMatch(/https?:\/\/github\.com\/angular\/angular\.js\/tree\/.+\/src\/ng\/http\.js#L\d+/); }); it('should change the page content when clicking a link to a service', function () { browser.get('build/docs/index.html'); var ngBindLink = element(by.css('.definition-table td a[href="api/ng/directive/ngClick"]')); ngBindLink.click(); var pageBody = element(by.css('h1')); expect(pageBody.getText()).toEqual('ngClick'); }); it('should show the functioning input directive example', function () { browser.get('build/docs/index.html#!/api/ng/directive/input'); // Ensure that the page is loaded before trying to switch frames. browser.waitForAngular(); browser.switchTo().frame('example-input-directive'); var nameInput = element(by.model('user.name')); nameInput.sendKeys('!!!'); var code = element.all(by.css('tt')).first(); expect(code.getText()).toContain('guest!!!'); }); it("should trim indentation from code blocks", function() { browser.get('build/docs/index.html#!/api/ng/type/$rootScope.Scope'); var codeBlocks = element.all(by.css('pre > code.lang-js')); codeBlocks.each(function(codeBlock) { var firstSpan = codeBlock.all(by.css('span')).first(); expect(firstSpan.getText()).not.toMatch(/^\W+$/); }); }); }); });