How to use setDefaultViewport method in Playwright Internal

Best JavaScript code snippet using playwright-internal

coding-rules-spec.js

Source:coding-rules-spec.js Github

copy

Full Screen

...3describe('Coding Rules App', function () {4 it('should show alert when there is no available profiles for activation', 2, function (casper, test) {5 return casper6 .start(lib.buildUrl('base'), function () {7 lib.setDefaultViewport();8 lib.fmock('/api/rules/app', 'app-no-available-profiles.json');9 lib.fmock('/api/rules/search', 'search-no-available-profiles.json');10 lib.fmock('/api/rules/show', 'show-no-available-profiles.json');11 lib.smock('/api/issues/search', '{}');12 })13 .then(function () {14 casper.evaluate(function () {15 require(['apps/coding-rules/app'], function (App) {16 App.start({ el: '#content' });17 });18 });19 })20 .then(function () {21 casper.waitForSelector('.coding-rule.selected', function () {22 casper.click('.coding-rule.selected .js-rule');23 });24 })25 .then(function () {26 casper.waitForSelector('.coding-rules-detail-header');27 })28 .then(function () {29 test.assertExist('#coding-rules-quality-profile-activate');30 casper.click('#coding-rules-quality-profile-activate');31 casper.waitForSelector('.modal');32 })33 .then(function () {34 test.assertExists('.modal .alert');35 });36 });37 it('should show profile facet', 6, function (casper, test) {38 return casper39 .start(lib.buildUrl('base'), function () {40 lib.setDefaultViewport();41 lib.fmock('/api/rules/app', 'app.json');42 lib.fmock('/api/rules/search', 'search-profile-facet-qprofile-active.json', { data: { activation: true } });43 lib.fmock('/api/rules/search', 'search-profile-facet-qprofile-inactive.json',44 { data: { activation: 'false' } });45 lib.fmock('/api/rules/search', 'search-profile-facet.json');46 })47 .then(function () {48 casper.evaluate(function () {49 require(['apps/coding-rules/app'], function (App) {50 App.start({ el: '#content' });51 });52 });53 })54 .then(function () {55 casper.waitForSelector('.coding-rule');56 })57 .then(function () {58 test.assertSelectorContains('#coding-rules-total', '609');59 casper.click('[data-property="qprofile"] .js-facet-toggle');60 casper.waitForSelector('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');61 })62 .then(function () {63 casper.click('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');64 casper.waitForSelectorTextChange('#coding-rules-total');65 })66 .then(function () {67 test.assertSelectorContains('#coding-rules-total', '407');68 test.assertExists('.js-facet[data-value="java-default-with-mojo-conventions-49307"] .js-active.facet-toggle-active');69 casper.click('.js-facet[data-value="java-default-with-mojo-conventions-49307"] .js-inactive');70 casper.waitForSelectorTextChange('#coding-rules-total');71 })72 .then(function () {73 test.assertSelectorContains('#coding-rules-total', '408');74 test.assertExists('.js-facet[data-value="java-default-with-mojo-conventions-49307"] .js-inactive.facet-toggle-active');75 casper.click('[data-property="qprofile"] .js-facet-toggle');76 casper.waitForSelectorTextChange('#coding-rules-total');77 })78 .then(function () {79 test.assertSelectorContains('#coding-rules-total', '609');80 });81 });82 it('should show query facet', 3, function (casper, test) {83 return casper84 .start(lib.buildUrl('base'), function () {85 lib.setDefaultViewport();86 lib.fmock('/api/rules/app', 'app.json');87 lib.fmock('/api/rules/search', 'search-query.json', { data: { q: 'query' } });88 lib.fmock('/api/rules/search', 'search.json');89 })90 .then(function () {91 casper.evaluate(function () {92 require(['apps/coding-rules/app'], function (App) {93 App.start({ el: '#content' });94 });95 });96 })97 .then(function () {98 casper.waitForSelector('.coding-rule');99 })100 .then(function () {101 test.assertSelectorContains('#coding-rules-total', '609');102 casper.evaluate(function () {103 jQuery('[data-property="q"] input').val('query');104 jQuery('[data-property="q"] form').submit();105 });106 casper.waitForSelectorTextChange('#coding-rules-total');107 })108 .then(function () {109 test.assertSelectorContains('#coding-rules-total', '4');110 casper.evaluate(function () {111 jQuery('[data-property="q"] input').val('');112 jQuery('[data-property="q"] form').submit();113 });114 casper.waitForSelectorTextChange('#coding-rules-total');115 })116 .then(function () {117 test.assertSelectorContains('#coding-rules-total', '609');118 });119 });120 it('should show rule permalink', 1, function (casper, test) {121 return casper122 .start(lib.buildUrl('base'), function () {123 lib.setDefaultViewport();124 lib.fmock('/api/rules/app', 'app.json');125 lib.fmock('/api/rules/search', 'search.json');126 lib.fmock('/api/rules/show', 'show.json');127 lib.smock('/api/issues/search', '{}');128 })129 .then(function () {130 casper.evaluate(function () {131 require(['apps/coding-rules/app'], function (App) {132 App.start({ el: '#content' });133 });134 });135 })136 .then(function () {137 casper.waitForSelector('.coding-rule.selected');138 })139 .then(function () {140 casper.click('.coding-rule.selected .js-rule');141 casper.waitForSelector('.coding-rules-detail-header');142 })143 .then(function () {144 lib.capture();145 test.assertExists('a[href="/coding_rules#rule_key=squid%3AS2204"]');146 });147 });148 it('should activate profile', 5, function (casper, test) {149 return casper150 .start(lib.buildUrl('base'), function () {151 lib.setDefaultViewport();152 lib.fmock('/api/rules/app', 'app.json');153 lib.fmock('/api/rules/search', 'search.json');154 this.showMock = lib.fmock('/api/rules/show', 'show-activate-profile.json');155 lib.smock('/api/qualityprofiles/activate_rule', '{}');156 lib.smock('/api/issues/search', '{}');157 })158 .then(function () {159 casper.evaluate(function () {160 require(['apps/coding-rules/app'], function (App) {161 App.start({ el: '#content' });162 });163 });164 })165 .then(function () {166 casper.waitForSelector('.coding-rule.selected', function () {167 casper.click('.coding-rule.selected .js-rule');168 });169 })170 .then(function () {171 casper.waitForSelector('.coding-rules-detail-header');172 })173 .then(function () {174 test.assertDoesntExist('.coding-rules-detail-quality-profile-name');175 test.assertExist('#coding-rules-quality-profile-activate');176 casper.click('#coding-rules-quality-profile-activate');177 casper.waitForSelector('.modal');178 })179 .then(function () {180 lib.clearRequestMock(this.showMock);181 lib.fmock('/api/rules/show', 'show-activate-profile-with-profile.json');182 casper.click('#coding-rules-quality-profile-activation-activate');183 casper.waitForSelector('.coding-rules-detail-quality-profile-name');184 })185 .then(function () {186 test.assertExists('.coding-rules-detail-quality-profile-name');187 test.assertExists('.coding-rules-detail-quality-profile-severity');188 test.assertExists('.coding-rules-detail-quality-profile-deactivate');189 });190 });191 it('should create custom rule', 1, function (casper, test) {192 return casper193 .start(lib.buildUrl('base'), function () {194 lib.setDefaultViewport();195 lib.fmock('/api/rules/app', 'app.json');196 this.customRulesSearchMock = lib.fmock('/api/rules/search', 'search-custom-rules.json',197 { data: { template_key: 'squid:ArchitecturalConstraint' } });198 this.searchMock = lib.fmock('/api/rules/search', 'search-create-custom-rules.json');199 lib.fmock('/api/rules/show', 'show-create-custom-rules.json');200 lib.smock('/api/rules/create', '{}');201 lib.smock('/api/issues/search', '{}');202 })203 .then(function () {204 casper.evaluate(function () {205 require(['apps/coding-rules/app'], function (App) {206 App.start({ el: '#content' });207 });208 });209 })210 .then(function () {211 casper.waitForSelector('.coding-rule.selected');212 })213 .then(function () {214 casper.click('.coding-rule.selected .js-rule');215 casper.waitForSelector('#coding-rules-detail-custom-rules .coding-rules-detail-list-name');216 })217 .then(function () {218 lib.clearRequestMock(this.customRulesSearchMock);219 lib.clearRequestMock(this.searchMock);220 lib.fmock('/api/rules/search', 'search-custom-rules2.json');221 })222 .then(function () {223 test.assertElementCount('#coding-rules-detail-custom-rules .coding-rules-detail-list-name', 1);224 casper.click('.js-create-custom-rule');225 casper.evaluate(function () {226 jQuery('.modal form [name="name"]').val('test').keyup();227 jQuery('.modal form [name="markdown_description"]').val('test');228 });229 casper.click('#coding-rules-custom-rule-creation-create');230 lib.waitForElementCount('#coding-rules-detail-custom-rules .coding-rules-detail-list-name', 2);231 });232 });233 it('should reactivate custom rule', 2, function (casper, test) {234 return casper235 .start(lib.buildUrl('base'), function () {236 lib.setDefaultViewport();237 lib.fmock('/api/rules/app', 'app.json');238 this.customRulesSearchMock = lib.fmock('/api/rules/search', 'search-custom-rules.json',239 { data: { template_key: 'squid:ArchitecturalConstraint' } });240 this.searchMock = lib.fmock('/api/rules/search', 'search-create-custom-rules.json');241 lib.fmock('/api/rules/show', 'show-create-custom-rules.json');242 this.createMock = lib.fmock('/api/rules/create', 'create-create-custom-rules.json', { status: 409 });243 lib.smock('/api/issues/search', '{}');244 })245 .then(function () {246 casper.evaluate(function () {247 require(['apps/coding-rules/app'], function (App) {248 App.start({ el: '#content' });249 });250 jQuery.ajaxSetup({ dataType: 'json' });251 });252 })253 .then(function () {254 casper.waitForSelector('.coding-rule.selected', function () {255 casper.click('.coding-rule.selected .js-rule');256 });257 })258 .then(function () {259 casper.waitForSelector('.js-create-custom-rule');260 })261 .then(function () {262 casper.click('.js-create-custom-rule');263 casper.waitForSelector('.modal');264 })265 .then(function () {266 casper.evaluate(function () {267 jQuery('.modal form [name="name"]').val('My Custom Rule').keyup();268 jQuery('.modal form [name="markdown_description"]').val('My Description');269 });270 casper.click('#coding-rules-custom-rule-creation-create');271 casper.waitForSelector('.modal .alert-warning');272 })273 .then(function () {274 test.assertVisible('.modal #coding-rules-custom-rule-creation-reactivate');275 test.assertNotVisible('.modal #coding-rules-custom-rule-creation-create');276 lib.clearRequestMock(this.createMock);277 lib.clearRequestMock(this.customRulesSearchMock);278 lib.clearRequestMock(this.searchMock);279 lib.fmock('/api/rules/create', 'create-create-custom-rules.json');280 this.customRulesSearchMock = lib.fmock('/api/rules/search', 'search-custom-rules2.json',281 { data: { template_key: 'squid:ArchitecturalConstraint' } });282 this.searchMock = lib.fmock('/api/rules/search', 'search-create-custom-rules.json');283 casper.click('.modal #coding-rules-custom-rule-creation-reactivate');284 lib.waitForElementCount('#coding-rules-detail-custom-rules .coding-rules-detail-list-name', 2);285 });286 });287 it('should create manual rule', 3, function (casper, test) {288 return casper289 .start(lib.buildUrl('base'), function () {290 lib.setDefaultViewport();291 lib.fmock('/api/rules/app', 'app.json');292 lib.fmock('/api/rules/search', 'search-create-manual-rule.json');293 lib.fmock('/api/rules/create', 'show-create-manual-rule.json');294 lib.fmock('/api/rules/show', 'show-create-manual-rule.json');295 lib.smock('/api/issues/search', '{}');296 })297 .then(function () {298 casper.evaluate(function () {299 require(['apps/coding-rules/app'], function (App) {300 App.start({ el: '#content' });301 });302 });303 })304 .then(function () {305 casper.waitForSelector('.js-create-manual-rule');306 })307 .then(function () {308 casper.click('.js-create-manual-rule');309 casper.waitForSelector('.modal');310 })311 .then(function () {312 casper.evaluate(function () {313 jQuery('.modal [name="name"]').val('Manual Rule').keyup();314 jQuery('.modal [name="markdown_description"]').val('Manual Rule Description');315 jQuery('.modal #coding-rules-manual-rule-creation-create').click();316 });317 casper.waitForSelector('.coding-rules-detail-header');318 })319 .then(function () {320 test.assertSelectorContains('.coding-rules-detail-header', 'Manual Rule');321 test.assertSelectorContains('.coding-rule-details', 'manual:Manual_Rule');322 test.assertSelectorContains('.coding-rules-detail-description', 'Manual Rule Description');323 });324 });325 it('should reactivate manual rule', 7, function (casper, test) {326 return casper327 .start(lib.buildUrl('base'), function () {328 lib.setDefaultViewport();329 lib.fmock('/api/rules/app', 'app.json');330 lib.fmock('/api/rules/search', 'search-create-manual-rule.json');331 this.createMock = lib.fmock('/api/rules/create', 'show-create-manual-rule.json', { status: 409 });332 lib.fmock('/api/rules/show', 'show-create-manual-rule.json');333 lib.smock('/api/issues/search', '{}');334 })335 .then(function () {336 casper.evaluate(function () {337 require(['apps/coding-rules/app'], function (App) {338 App.start({ el: '#content' });339 });340 jQuery.ajaxSetup({ dataType: 'json' });341 });342 })343 .then(function () {344 casper.waitForSelector('.js-create-manual-rule');345 })346 .then(function () {347 casper.click('.js-create-manual-rule');348 casper.waitForSelector('.modal');349 })350 .then(function () {351 test.assertNotVisible('.modal #coding-rules-manual-rule-creation-reactivate');352 test.assertVisible('.modal #coding-rules-manual-rule-creation-create');353 casper.evaluate(function () {354 jQuery('.modal [name="name"]').val('Manual Rule').keyup();355 jQuery('.modal [name="markdown_description"]').val('Manual Rule Description');356 jQuery('.modal #coding-rules-manual-rule-creation-create').click();357 });358 casper.waitForSelector('.modal .alert-warning');359 })360 .then(function () {361 test.assertVisible('.modal #coding-rules-manual-rule-creation-reactivate');362 test.assertNotVisible('.modal #coding-rules-manual-rule-creation-create');363 lib.clearRequestMock(this.createMock);364 lib.fmock('/api/rules/create', 'show.json');365 casper.click('.modal #coding-rules-manual-rule-creation-reactivate');366 casper.waitForSelector('.coding-rules-detail-header');367 })368 .then(function () {369 test.assertSelectorContains('.coding-rules-detail-header', 'Manual Rule');370 test.assertSelectorContains('.coding-rule-details', 'manual:Manual_Rule');371 test.assertSelectorContains('.coding-rules-detail-description', 'Manual Rule Description');372 });373 });374 it('should delete custom rules', 1, function (casper, test) {375 return casper376 .start(lib.buildUrl('base'), function () {377 lib.setDefaultViewport();378 lib.fmock('/api/rules/app', 'app.json');379 lib.fmock('/api/rules/search', 'search-delete-custom-rule-custom-rules.json',380 { data: { template_key: 'squid:ArchitecturalConstraint' } });381 lib.fmock('/api/rules/search', 'search-delete-custom-rule.json');382 lib.fmock('/api/rules/show', 'show-delete-custom-rule.json');383 lib.smock('/api/rules/delete', '{}');384 lib.smock('/api/issues/search', '{}');385 })386 .then(function () {387 casper.evaluate(function () {388 require(['apps/coding-rules/app'], function (App) {389 App.start({ el: '#content' });390 });391 });392 })393 .then(function () {394 casper.waitForSelector('.coding-rule.selected', function () {395 casper.click('.coding-rule.selected .js-rule');396 });397 })398 .then(function () {399 casper.waitForSelector('#coding-rules-detail-custom-rules .coding-rules-detail-list-name');400 })401 .then(function () {402 test.assertElementCount('#coding-rules-detail-custom-rules .coding-rules-detail-list-name', 2);403 casper.click('.js-delete-custom-rule');404 casper.click('[data-confirm="yes"]');405 lib.waitForElementCount('#coding-rules-detail-custom-rules .coding-rules-detail-list-name', 1);406 });407 });408 it('should delete manual rules', 1, function (casper, test) {409 return casper410 .start(lib.buildUrl('base'), function () {411 lib.setDefaultViewport();412 lib.fmock('/api/rules/app', 'app.json');413 this.searchMock = lib.fmock('/api/rules/search', 'search-delete-manual-rule-before.json');414 lib.fmock('/api/rules/show', 'show-delete-manual-rule.json');415 lib.smock('/api/rules/delete', '{}');416 lib.smock('/api/issues/search', '{}');417 })418 .then(function () {419 casper.evaluate(function () {420 require(['apps/coding-rules/app'], function (App) {421 App.start({ el: '#content' });422 });423 });424 })425 .then(function () {426 casper.waitForSelector('.coding-rule.selected', function () {427 casper.click('.coding-rule.selected .js-rule');428 });429 })430 .then(function () {431 casper.waitForSelector('.js-delete');432 })433 .then(function () {434 casper.click('.js-delete');435 casper.waitForSelector('[data-confirm="yes"]');436 })437 .then(function () {438 lib.clearRequestMock(this.searchMock);439 lib.fmock('/api/rules/search', 'search-delete-manual-rule-after.json');440 casper.click('[data-confirm="yes"]');441 casper.waitForSelectorTextChange('#coding-rules-total');442 })443 .then(function () {444 test.assertSelectorContains('#coding-rules-total', 0);445 });446 });447 it('should show custom rules', 3, function (casper, test) {448 return casper449 .start(lib.buildUrl('base'), function () {450 lib.setDefaultViewport();451 lib.fmock('/api/rules/app', 'app.json');452 lib.fmock('/api/rules/search', 'search-show-cutsom-rule-custom-rules.json',453 { data: { template_key: 'squid:ArchitecturalConstraint' } });454 lib.fmock('/api/rules/search', 'search-show-cutsom-rule.json');455 lib.fmock('/api/rules/show', 'show-show-cutsom-rule.json');456 lib.smock('/api/issues/search', '{}');457 })458 .then(function () {459 casper.evaluate(function () {460 require(['apps/coding-rules/app'], function (App) {461 App.start({ el: '#content' });462 });463 });464 })465 .then(function () {466 casper.waitForSelector('.coding-rule.selected', function () {467 casper.click('.coding-rule.selected .js-rule');468 });469 })470 .then(function () {471 casper.waitForSelector('#coding-rules-detail-custom-rules .coding-rules-detail-list-name');472 })473 .then(function () {474 test.assertExists('#coding-rules-detail-custom-rules');475 test.assertElementCount('#coding-rules-detail-custom-rules .coding-rules-detail-list-name', 2);476 test.assertSelectorContains('#coding-rules-detail-custom-rules .coding-rules-detail-list-name',477 'Do not use org.h2.util.StringUtils');478 });479 });480 it('should show deprecated label', 1, function (casper, test) {481 return casper482 .start(lib.buildUrl('base'), function () {483 lib.setDefaultViewport();484 lib.fmock('/api/rules/app', 'app.json');485 lib.fmock('/api/rules/search', 'search-deprecated.json');486 })487 .then(function () {488 casper.evaluate(function () {489 require(['apps/coding-rules/app'], function (App) {490 App.start({ el: '#content' });491 });492 });493 })494 .then(function () {495 casper.waitForSelector('.coding-rule.selected');496 })497 .then(function () {498 test.assertSelectorContains('.coding-rule.selected', 'DEPRECATED');499 });500 });501 it('should show rule details', 20, function (casper, test) {502 return casper503 .start(lib.buildUrl('base'), function () {504 lib.setDefaultViewport();505 lib.fmock('/api/rules/app', 'app.json');506 lib.fmock('/api/rules/search', 'search-show-details.json');507 lib.fmock('/api/rules/show', 'show-show-details.json');508 lib.smock('/api/issues/search', '{}');509 })510 .then(function () {511 casper.evaluate(function () {512 require(['apps/coding-rules/app'], function (App) {513 App.start({ el: '#content' });514 });515 });516 })517 .then(function () {518 casper.waitForSelector('.coding-rule.selected', function () {519 casper.click('.coding-rule.selected .js-rule');520 });521 })522 .then(function () {523 casper.waitForSelector('.coding-rules-detail-header');524 })525 .then(function () {526 test.assertSelectorContains('.search-navigator-workspace-details',527 'Throwable and Error classes should not be caught');528 test.assertSelectorContains('.search-navigator-workspace-details', 'squid:S1181');529 test.assertExists('.coding-rules-detail-properties .icon-severity-blocker');530 test.assertSelectorContains('.coding-rules-detail-properties', 'error-handling');531 test.assertSelectorContains('.coding-rules-detail-properties', '2013');532 test.assertSelectorContains('.coding-rules-detail-properties', 'SonarQube (Java)');533 test.assertSelectorContains('.coding-rules-detail-properties', 'Reliability > Exception handling');534 test.assertSelectorContains('.coding-rules-detail-properties', 'LINEAR');535 test.assertSelectorContains('.coding-rules-detail-properties', '20min');536 test.assertSelectorContains('.coding-rules-detail-description', 'is the superclass of all errors and');537 test.assertSelectorContains('.coding-rules-detail-description', 'its subclasses should be caught.');538 test.assertSelectorContains('.coding-rules-detail-description', 'Noncompliant Code Example');539 test.assertSelectorContains('.coding-rules-detail-description', 'Compliant Solution');540 test.assertSelectorContains('.coding-rules-detail-parameters', 'max');541 test.assertSelectorContains('.coding-rules-detail-parameters', 'Maximum authorized number of parameters');542 test.assertSelectorContains('.coding-rules-detail-parameters', '7');543 test.assertElementCount('.coding-rules-detail-quality-profile-name', 6);544 test.assertSelectorContains('.coding-rules-detail-quality-profile-name', 'Default - Top');545 test.assertElementCount('.coding-rules-detail-quality-profile-inheritance', 4);546 test.assertSelectorContains('.coding-rules-detail-quality-profile-inheritance', 'Default - Top');547 });548 });549 it('should show empty list', 3, function (casper, test) {550 return casper551 .start(lib.buildUrl('base'), function () {552 lib.setDefaultViewport();553 lib.fmock('/api/rules/app', 'app.json');554 lib.fmock('/api/rules/search', 'search-empty.json');555 })556 .then(function () {557 casper.evaluate(function () {558 require(['apps/coding-rules/app'], function (App) {559 App.start({ el: '#content' });560 });561 });562 })563 .then(function () {564 casper.waitForSelector('.search-navigator-facet-box');565 })566 .then(function () {567 test.assertDoesntExist('.coding-rule');568 test.assertSelectorContains('#coding-rules-total', 0);569 test.assertExists('.search-navigator-no-results');570 });571 });572 it('should show facets', 1, function (casper, test) {573 return casper574 .start(lib.buildUrl('base'), function () {575 lib.setDefaultViewport();576 lib.fmock('/api/rules/app', 'app.json');577 lib.fmock('/api/rules/search', 'search.json');578 })579 .then(function () {580 casper.evaluate(function () {581 require(['apps/coding-rules/app'], function (App) {582 App.start({ el: '#content' });583 });584 });585 })586 .then(function () {587 casper.waitForSelector('.search-navigator-facet-box');588 })589 .then(function () {590 test.assertElementCount('.search-navigator-facet-box', 13);591 });592 });593 it('should show rule', 7, function (casper, test) {594 return casper595 .start(lib.buildUrl('base'), function () {596 lib.setDefaultViewport();597 lib.fmock('/api/rules/app', 'app.json');598 lib.fmock('/api/rules/search', 'search.json');599 })600 .then(function () {601 casper.evaluate(function () {602 require(['apps/coding-rules/app'], function (App) {603 App.start({ el: '#content' });604 });605 });606 })607 .then(function () {608 casper.waitForSelector('.coding-rule.selected');609 })610 .then(function () {611 test.assertSelectorContains('.coding-rule.selected', 'Values passed to SQL commands should be sanitized');612 test.assertSelectorContains('.coding-rule.selected', 'Java');613 test.assertSelectorContains('.coding-rule.selected', 'cwe');614 test.assertSelectorContains('.coding-rule.selected', 'owasp-top10');615 test.assertSelectorContains('.coding-rule.selected', 'security');616 test.assertSelectorContains('.coding-rule.selected', 'sql');617 test.assertSelectorContains('.coding-rule.selected', 'custom-tag');618 });619 });620 it('should show rule issues', 5, function (casper, test) {621 return casper622 .start(lib.buildUrl('base'), function () {623 lib.setDefaultViewport();624 lib.fmock('/api/rules/app', 'app.json');625 lib.fmock('/api/rules/search', 'search.json');626 lib.fmock('/api/rules/show', 'show.json');627 lib.fmock('/api/issues/search', 'issues-search.json');628 })629 .then(function () {630 casper.evaluate(function () {631 require(['apps/coding-rules/app'], function (App) {632 App.start({ el: '#content' });633 });634 });635 })636 .then(function () {637 casper.waitForSelector('.coding-rule.selected', function () {638 casper.click('.coding-rule.selected .js-rule');639 });640 })641 .then(function () {642 casper.waitForSelector('.coding-rules-most-violated-projects');643 })644 .then(function () {645 test.assertSelectorContains('.js-rule-issues', '7');646 test.assertSelectorContains('.coding-rules-most-violated-projects', 'SonarQube');647 test.assertSelectorContains('.coding-rules-most-violated-projects', '2');648 test.assertSelectorContains('.coding-rules-most-violated-projects', 'SonarQube Runner');649 test.assertSelectorContains('.coding-rules-most-violated-projects', '1');650 });651 });652 it('should show rules', 4, function (casper, test) {653 return casper654 .start(lib.buildUrl('base'), function () {655 lib.setDefaultViewport();656 lib.fmock('/api/rules/app', 'app.json');657 lib.fmock('/api/rules/search', 'search.json');658 })659 .then(function () {660 casper.evaluate(function () {661 require(['apps/coding-rules/app'], function (App) {662 App.start({ el: '#content' });663 });664 });665 })666 .then(function () {667 casper.waitForSelector('.coding-rule');668 })669 .then(function () {670 test.assertElementCount('.coding-rule', 25);671 test.assertSelectorContains('.coding-rule', 'Values passed to SQL commands should be sanitized');672 test.assertSelectorContains('.coding-rule',673 'An open curly brace should be located at the beginning of a line');674 test.assertSelectorContains('#coding-rules-total', '609');675 });676 });677 it('should move between rules from detailed view', 3, function (casper, test) {678 return casper679 .start(lib.buildUrl('base'), function () {680 lib.setDefaultViewport();681 lib.fmock('/api/rules/app', 'app.json');682 lib.fmock('/api/rules/search', 'search.json');683 this.showMock = lib.fmock('/api/rules/show', 'show.json');684 })685 .then(function () {686 casper.evaluate(function () {687 require(['apps/coding-rules/app'], function (App) {688 App.start({ el: '#content' });689 });690 });691 })692 .then(function () {693 casper.waitForSelector('.coding-rule.selected', function () {694 casper.click('.coding-rule.selected .js-rule');695 });696 })697 .then(function () {698 casper.waitForSelector('.coding-rules-detail-header');699 })700 .then(function () {701 test.assertSelectorContains('.coding-rules-detail-header',702 '".equals()" should not be used to test the values');703 lib.clearRequestMock(this.showMock);704 this.showMock = lib.fmock('/api/rules/show', 'show2.json');705 casper.click('.js-next');706 casper.waitForSelectorTextChange('.coding-rules-detail-header');707 })708 .then(function () {709 test.assertSelectorContains('.coding-rules-detail-header', '"@Override" annotation should be used on any');710 lib.clearRequestMock(this.showMock);711 this.showMock = lib.fmock('/api/rules/show', 'show.json');712 casper.click('.js-prev');713 casper.waitForSelectorTextChange('.coding-rules-detail-header');714 })715 .then(function () {716 test.assertSelectorContains('.coding-rules-detail-header',717 '".equals()" should not be used to test the values');718 });719 });720 it('should filter similar rules', 3, function (casper, test) {721 return casper722 .start(lib.buildUrl('base'), function () {723 lib.setDefaultViewport();724 lib.fmock('/api/rules/app', 'app.json');725 lib.fmock('/api/rules/search', 'search-sql-tag.json', { data: { tags: 'sql' } });726 lib.fmock('/api/rules/search', 'search.json');727 })728 .then(function () {729 casper.evaluate(function () {730 require(['apps/coding-rules/app'], function (App) {731 App.start({ el: '#content' });732 });733 });734 })735 .then(function () {736 casper.waitForSelector('.coding-rule.selected .js-rule-filter');737 })738 .then(function () {739 test.assertSelectorContains('#coding-rules-total', '609');740 casper.click('.js-rule-filter');741 casper.waitForSelector('.bubble-popup');742 })743 .then(function () {744 test.assertExists('.bubble-popup [data-property="languages"][data-value="java"]');745 casper.click('.bubble-popup [data-property="tags"][data-value="sql"]');746 casper.waitForSelectorTextChange('#coding-rules-total');747 })748 .then(function () {749 test.assertSelectorContains('#coding-rules-total', '2');750 });751 });752 it('should show active severity facet', 7, function (casper, test) {753 return casper754 .start(lib.buildUrl('base'), function () {755 lib.setDefaultViewport();756 lib.fmock('/api/rules/app', 'app.json');757 lib.fmock('/api/rules/search', 'search-BLOCKER.json', { data: { active_severities: 'BLOCKER' } });758 lib.fmock('/api/rules/search', 'active-severities-facet.json',759 { data: { facets: 'active_severities', ps: '1' } });760 lib.fmock('/api/rules/search', 'search-qprofile.json',761 { data: { qprofile: 'java-default-with-mojo-conventions-49307' } });762 lib.fmock('/api/rules/search', 'search.json');763 })764 .then(function () {765 casper.evaluate(function () {766 require(['apps/coding-rules/app'], function (App) {767 App.start({ el: '#content' });768 });769 });770 })771 .then(function () {772 casper.waitForSelector('.coding-rule');773 })774 .then(function () {775 test.assertSelectorContains('#coding-rules-total', '609');776 test.assertExists('.search-navigator-facet-box-forbidden[data-property="active_severities"]');777 casper.click('[data-property="qprofile"] .js-facet-toggle');778 casper.waitForSelector('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');779 })780 .then(function () {781 casper.click('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');782 casper.waitForSelectorTextChange('#coding-rules-total');783 })784 .then(function () {785 test.assertSelectorContains('#coding-rules-total', '407');786 test.assertDoesntExist('.search-navigator-facet-box-forbidden[data-property="active_severities"]');787 casper.click('[data-property="active_severities"] .js-facet-toggle');788 casper.waitForSelector('[data-property="active_severities"] [data-value="BLOCKER"]');789 })790 .then(function () {791 casper.click('[data-property="active_severities"] [data-value="BLOCKER"]');792 casper.waitForSelectorTextChange('#coding-rules-total');793 })794 .then(function () {795 test.assertSelectorContains('#coding-rules-total', '4');796 casper.click('[data-property="qprofile"] .js-facet-toggle');797 casper.waitForSelectorTextChange('#coding-rules-total');798 })799 .then(function () {800 test.assertSelectorContains('#coding-rules-total', '609');801 test.assertExists('.search-navigator-facet-box-forbidden[data-property="active_severities"]');802 });803 });804 it('should show available since facet', 2, function (casper, test) {805 return casper806 .start(lib.buildUrl('base'), function () {807 lib.setDefaultViewport();808 lib.fmock('/api/rules/app', 'app.json');809 lib.fmock('/api/rules/search', 'search-limited.json', { data: { available_since: '2014-12-01' } });810 lib.fmock('/api/rules/search', 'search.json');811 })812 .then(function () {813 casper.evaluate(function () {814 require(['apps/coding-rules/app'], function (App) {815 App.start({ el: '#content' });816 });817 });818 })819 .then(function () {820 casper.waitForSelector('.coding-rule');821 })822 .then(function () {823 test.assertSelectorContains('#coding-rules-total', '609');824 casper.click('[data-property="available_since"] .js-facet-toggle');825 casper.evaluate(function () {826 jQuery('[data-property="available_since"] input').val('2014-12-01').change();827 });828 })829 .then(function () {830 casper.waitForSelectorTextChange('#coding-rules-total');831 })832 .then(function () {833 test.assertSelectorContains('#coding-rules-total', '101');834 });835 });836 it('should bulk activate', 7, function (casper, test) {837 return casper838 .start(lib.buildUrl('base'), function () {839 lib.setDefaultViewport();840 lib.fmock('/api/rules/app', 'app.json');841 lib.fmock('/api/rules/search', 'search.json');842 lib.smock('/api/qualityprofiles/activate_rules', '{ "succeeded": 225 }');843 })844 .then(function () {845 casper.evaluate(function () {846 require(['apps/coding-rules/app'], function (App) {847 App.start({ el: '#content' });848 });849 jQuery.ajaxSetup({ dataType: 'json' });850 });851 })852 .then(function () {853 casper.waitForSelector('.coding-rule');854 })855 .then(function () {856 test.assertExists('.js-bulk-change');857 casper.click('.js-bulk-change');858 casper.waitForSelector('.bubble-popup');859 })860 .then(function () {861 test.assertExists('.bubble-popup .js-bulk-change[data-action="activate"]');862 casper.click('.js-bulk-change[data-action="activate"]');863 casper.waitForSelector('.modal');864 })865 .then(function () {866 test.assertExists('.modal #coding-rules-bulk-change-profile');867 test.assertExists('.modal #coding-rules-submit-bulk-change');868 })869 .then(function () {870 casper.evaluate(function () {871 jQuery('#coding-rules-bulk-change-profile').val('java-default-with-mojo-conventions-49307');872 });873 })874 .then(function () {875 casper.click('.modal #coding-rules-submit-bulk-change');876 casper.waitForSelector('.modal .alert-success');877 })878 .then(function () {879 test.assertSelectorContains('.modal', 'Default - Maven Conventions');880 test.assertSelectorContains('.modal', 'Java');881 test.assertSelectorContains('.modal', '225');882 });883 });884 it('should fail to bulk activate', 6, function (casper, test) {885 return casper886 .start(lib.buildUrl('base'), function () {887 lib.setDefaultViewport();888 lib.fmock('/api/rules/app', 'app.json');889 lib.fmock('/api/rules/search', 'search.json');890 lib.smock('/api/qualityprofiles/activate_rules', '{ "succeeded": 225, "failed": 395 }');891 })892 .then(function () {893 casper.evaluate(function () {894 require(['apps/coding-rules/app'], function (App) {895 App.start({ el: '#content' });896 });897 jQuery.ajaxSetup({ dataType: 'json' });898 });899 })900 .then(function () {901 casper.waitForSelector('.coding-rule');902 })903 .then(function () {904 test.assertExists('.js-bulk-change');905 casper.click('.js-bulk-change');906 casper.waitForSelector('.bubble-popup');907 })908 .then(function () {909 test.assertExists('.bubble-popup .js-bulk-change[data-action="activate"]');910 casper.click('.js-bulk-change[data-action="activate"]');911 casper.waitForSelector('.modal');912 })913 .then(function () {914 test.assertExists('.modal #coding-rules-bulk-change-profile');915 test.assertExists('.modal #coding-rules-submit-bulk-change');916 })917 .then(function () {918 casper.evaluate(function () {919 jQuery('#coding-rules-bulk-change-profile').val('java-default-with-mojo-conventions-49307');920 });921 })922 .then(function () {923 casper.click('.modal #coding-rules-submit-bulk-change');924 casper.waitForSelector('.modal .alert-warning');925 })926 .then(function () {927 test.assertSelectorContains('.modal', '225');928 test.assertSelectorContains('.modal', '395');929 });930 });931 it('should filter profiles by language during bulk change', 4, function (casper, test) {932 return casper933 .start(lib.buildUrl('base'), function () {934 lib.setDefaultViewport();935 lib.fmock('/api/rules/app', 'app.json');936 lib.fmock('/api/rules/search', 'search.json');937 })938 .then(function () {939 casper.evaluate(function () {940 require(['apps/coding-rules/app'], function (App) {941 App.start({ el: '#content' });942 });943 jQuery.ajaxSetup({ dataType: 'json' });944 });945 })946 .then(function () {947 casper.waitForSelector('.coding-rule');948 })949 .then(function () {950 casper.click('.js-facet[data-value="java"]');951 test.assertExists('.js-bulk-change');952 casper.click('.js-bulk-change');953 casper.waitForSelector('.bubble-popup');954 })955 .then(function () {956 test.assertExists('.bubble-popup .js-bulk-change[data-action="activate"]');957 casper.click('.js-bulk-change[data-action="activate"]');958 casper.waitForSelector('.modal');959 })960 .then(function () {961 test.assertExists('.modal #coding-rules-bulk-change-profile');962 test.assertEqual(8, casper.evaluate(function () {963 return jQuery('.modal').find('#coding-rules-bulk-change-profile').find('option').length;964 }));965 });966 });967 it('should change selected profile during bulk change', 4, function (casper, test) {968 return casper969 .start(lib.buildUrl('base'), function () {970 lib.setDefaultViewport();971 lib.fmock('/api/rules/app', 'app.json');972 lib.fmock('/api/rules/search', 'search-qprofile-active.json',973 { data: { activation: true } });974 lib.fmock('/api/rules/search', 'search.json');975 lib.smock('/api/qualityprofiles/deactivate_rules', '{ "succeeded": 7 }');976 })977 .then(function () {978 casper.evaluate(function () {979 require(['apps/coding-rules/app'], function (App) {980 App.start({ el: '#content' });981 });982 jQuery.ajaxSetup({ dataType: 'json' });983 });984 })985 .then(function () {986 casper.waitForSelector('.coding-rule');987 })988 .then(function () {989 casper.click('[data-property="qprofile"] .js-facet-toggle');990 casper.waitForSelector('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');991 })992 .then(function () {993 casper.click('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');994 casper.waitForSelectorTextChange('#coding-rules-total');995 })996 .then(function () {997 test.assertExists('.js-bulk-change');998 casper.click('.js-bulk-change');999 casper.waitForSelector('.bubble-popup');1000 })1001 .then(function () {1002 test.assertExists('.bubble-popup .js-bulk-change[data-param="java-default-with-mojo-conventions-49307"]');1003 casper.click('.js-bulk-change[data-param="java-default-with-mojo-conventions-49307"]');1004 casper.waitForSelector('.modal');1005 })1006 .then(function () {1007 test.assertDoesntExist('.modal #coding-rules-bulk-change-profile');1008 casper.click('.modal #coding-rules-submit-bulk-change');1009 casper.waitForSelector('.modal .alert-success');1010 })1011 .then(function () {1012 test.assertSelectorContains('.modal', '7');1013 });1014 });1015 it('should show characteristic facet', 6, function (casper, test) {1016 return casper1017 .start(lib.buildUrl('base'), function () {1018 lib.setDefaultViewport();1019 lib.smock('/api/l10n/index', '{}');1020 lib.fmock('/api/rules/app', 'app.json');1021 lib.fmock('/api/rules/search', 'search-with-portability-characteristic.json',1022 { data: { debt_characteristics: 'PORTABILITY' } });1023 lib.fmock('/api/rules/search', 'search-with-memory-efficiency-characteristic.json',1024 { data: { debt_characteristics: 'MEMORY_EFFICIENCY' } });1025 lib.fmock('/api/rules/search', 'search-without-characteristic.json',1026 { data: { has_debt_characteristic: 'false' } });1027 lib.fmock('/api/rules/search', 'search-characteristic.json',1028 { data: { facets: 'debt_characteristics' } });1029 lib.fmock('/api/rules/search', 'search.json');1030 })1031 .then(function () {1032 casper.evaluate(function () {1033 require(['apps/coding-rules/app'], function (App) {1034 App.start({ el: '#content' });1035 });1036 jQuery.ajaxSetup({ dataType: 'json' });1037 });1038 })1039 .then(function () {1040 casper.waitForSelector('.coding-rule');1041 })1042 .then(function () {1043 // enable facet1044 test.assertExists('.search-navigator-facet-box-collapsed[data-property="debt_characteristics"]');1045 casper.click('[data-property="debt_characteristics"] .js-facet-toggle');1046 casper.waitForSelector('.js-facet[data-value="PORTABILITY"]');1047 })1048 .then(function () {1049 // select characteristic1050 test.assertElementCount('[data-property="debt_characteristics"] .js-facet', 32);1051 test.assertElementCount('[data-property="debt_characteristics"] .js-facet.search-navigator-facet-indent', 24);1052 casper.click('.js-facet[data-value="PORTABILITY"]');1053 casper.waitForSelectorTextChange('#coding-rules-total', function () {1054 test.assertSelectorContains('#coding-rules-total', 21);1055 });1056 })1057 .then(function () {1058 // select uncharacterized1059 casper.click('.js-facet[data-empty-characteristic]');1060 casper.waitForSelectorTextChange('#coding-rules-total', function () {1061 test.assertSelectorContains('#coding-rules-total', 208);1062 });1063 })1064 .then(function () {1065 // select sub-characteristic1066 casper.click('.js-facet[data-value="MEMORY_EFFICIENCY"]');1067 casper.waitForSelectorTextChange('#coding-rules-total', function () {1068 test.assertSelectorContains('#coding-rules-total', 3);1069 });1070 });1071 });1072 it('should disable characteristic facet', 6, function (casper, test) {1073 return casper1074 .start(lib.buildUrl('base'), function () {1075 lib.setDefaultViewport();1076 lib.smock('/api/l10n/index', '{}');1077 lib.fmock('/api/rules/app', 'app.json');1078 lib.fmock('/api/rules/search', 'search-with-portability-characteristic.json',1079 { data: { debt_characteristics: 'PORTABILITY' } });1080 lib.fmock('/api/rules/search', 'search-with-memory-efficiency-characteristic.json',1081 { data: { debt_characteristics: 'MEMORY_EFFICIENCY' } });1082 lib.fmock('/api/rules/search', 'search-without-characteristic.json',1083 { data: { has_debt_characteristic: 'false' } });1084 lib.fmock('/api/rules/search', 'search-characteristic.json',1085 { data: { facets: 'debt_characteristics' } });1086 lib.fmock('/api/rules/search', 'search.json');1087 })1088 .then(function () {1089 casper.evaluate(function () {1090 require(['apps/coding-rules/app'], function (App) {1091 App.start({ el: '#content' });1092 });1093 jQuery.ajaxSetup({ dataType: 'json' });1094 });1095 })1096 .then(function () {1097 casper.waitForSelector('.coding-rule');1098 })1099 .then(function () {1100 // enable facet1101 casper.click('[data-property="debt_characteristics"] .js-facet-toggle');1102 casper.waitForSelector('.js-facet[data-value="PORTABILITY"]');1103 })1104 .then(function () {1105 // select characteristic1106 casper.click('.js-facet[data-value="PORTABILITY"]');1107 casper.waitForSelectorTextChange('#coding-rules-total', function () {1108 test.assertSelectorContains('#coding-rules-total', 21);1109 });1110 })1111 .then(function () {1112 // disable facet1113 casper.click('[data-property="debt_characteristics"] .js-facet-toggle');1114 casper.waitForSelectorTextChange('#coding-rules-total', function () {1115 test.assertSelectorContains('#coding-rules-total', 609);1116 });1117 })1118 .then(function () {1119 // enable facet1120 casper.click('[data-property="debt_characteristics"] .js-facet-toggle');1121 casper.waitForSelector('.js-facet[data-value="MEMORY_EFFICIENCY"]');1122 })1123 .then(function () {1124 // select sub-characteristic1125 casper.click('.js-facet[data-value="MEMORY_EFFICIENCY"]');1126 casper.waitForSelectorTextChange('#coding-rules-total', function () {1127 test.assertSelectorContains('#coding-rules-total', 3);1128 });1129 })1130 .then(function () {1131 // disable facet1132 casper.click('[data-property="debt_characteristics"] .js-facet-toggle');1133 casper.waitForSelectorTextChange('#coding-rules-total', function () {1134 test.assertSelectorContains('#coding-rules-total', 609);1135 });1136 })1137 .then(function () {1138 // enable facet1139 casper.click('[data-property="debt_characteristics"] .js-facet-toggle');1140 casper.waitForSelector('.js-facet[data-empty-characteristic]');1141 })1142 .then(function () {1143 // select uncharacterized1144 casper.click('.js-facet[data-empty-characteristic]');1145 casper.waitForSelectorTextChange('#coding-rules-total', function () {1146 test.assertSelectorContains('#coding-rules-total', 208);1147 });1148 })1149 .then(function () {1150 // disable facet1151 casper.click('[data-property="debt_characteristics"] .js-facet-toggle');1152 casper.waitForSelectorTextChange('#coding-rules-total', function () {1153 test.assertSelectorContains('#coding-rules-total', 609);1154 });1155 });1156 });1157 it('should show template facet', 4, function (casper, test) {1158 return casper1159 .start(lib.buildUrl('base'), function () {1160 lib.setDefaultViewport();1161 lib.smock('/api/l10n/index', '{}');1162 lib.fmock('/api/rules/app', 'app.json');1163 lib.fmock('/api/rules/search', 'search-only-templates.json', { data: { 'is_template': 'true' } });1164 lib.fmock('/api/rules/search', 'search-hide-templates.json', { data: { 'is_template': 'false' } });1165 lib.fmock('/api/rules/search', 'search.json');1166 })1167 .then(function () {1168 casper.evaluate(function () {1169 require(['apps/coding-rules/app'], function (App) {1170 App.start({ el: '#content' });1171 });1172 jQuery.ajaxSetup({ dataType: 'json' });1173 });1174 })1175 .then(function () {1176 casper.waitForSelector('.coding-rule');1177 })1178 .then(function () {1179 // enable facet1180 test.assertExists('.search-navigator-facet-box-collapsed[data-property="is_template"]');1181 casper.click('[data-property="is_template"] .js-facet-toggle');1182 casper.waitForSelector('[data-property="is_template"] .js-facet[data-value="true"]');1183 })1184 .then(function () {1185 // show only templates1186 casper.click('[data-property="is_template"] .js-facet[data-value="true"]');1187 casper.waitForSelectorTextChange('#coding-rules-total', function () {1188 test.assertSelectorContains('#coding-rules-total', 8);1189 });1190 })1191 .then(function () {1192 // hide templates1193 casper.click('[data-property="is_template"] .js-facet[data-value="false"]');1194 casper.waitForSelectorTextChange('#coding-rules-total', function () {1195 test.assertSelectorContains('#coding-rules-total', 7);1196 });1197 })1198 .then(function () {1199 // disable facet1200 casper.click('[data-property="is_template"] .js-facet-toggle');1201 casper.waitForSelectorTextChange('#coding-rules-total', function () {1202 test.assertSelectorContains('#coding-rules-total', 609);1203 });1204 });1205 });1206 it('should show language facet', 5, function (casper, test) {1207 return casper1208 .start(lib.buildUrl('base'), function () {1209 lib.setDefaultViewport();1210 lib.smock('/api/l10n/index', '{}');1211 lib.fmock('/api/rules/app', 'app.json');1212 lib.fmock('/api/rules/search', 'search-with-custom-language.json', { data: { languages: 'custom' } });1213 lib.fmock('/api/rules/search', 'search.json');1214 lib.smock('/api/languages/list', '{"languages":[{"key":"custom","name":"Custom"}]}',1215 { data: { q: 'custom' } });1216 })1217 .then(function () {1218 casper.evaluate(function () {1219 require(['apps/coding-rules/app'], function (App) {1220 App.start({ el: '#content' });1221 });1222 jQuery.ajaxSetup({ dataType: 'json' });1223 });1224 })1225 .then(function () {1226 casper.waitForSelector('.coding-rule');1227 })1228 .then(function () {1229 casper.click('[data-property="languages"] .select2-choice');1230 casper.waitForSelector('.select2-search', function () {1231 casper.evaluate(function () {1232 jQuery('.select2-input').val('custom').trigger('keyup-change');1233 });1234 });1235 })1236 .then(function () {1237 casper.waitForSelector('.select2-result');1238 })1239 .then(function () {1240 test.assertSelectorContains('.select2-result', 'Custom');1241 casper.evaluate(function () {1242 jQuery('.select2-result').mouseup();1243 });1244 })1245 .then(function () {1246 casper.waitForSelectorTextChange('#coding-rules-total');1247 })1248 .then(function () {1249 test.assertSelectorContains('#coding-rules-total', 13);1250 test.assertExists('[data-property="languages"] .js-facet.active');1251 test.assertSelectorContains('[data-property="languages"] .js-facet.active', 'custom');1252 test.assertSelectorContains('[data-property="languages"] .js-facet.active', '13');1253 });1254 });1255 it('should reload results', 2, function (casper, test) {1256 return casper1257 .start(lib.buildUrl('base'), function () {1258 lib.setDefaultViewport();1259 lib.smock('/api/l10n/index', '{}');1260 lib.fmock('/api/rules/app', 'app.json');1261 this.searchMock = lib.fmock('/api/rules/search', 'search.json');1262 })1263 .then(function () {1264 casper.evaluate(function () {1265 require(['apps/coding-rules/app'], function (App) {1266 App.start({ el: '#content' });1267 });1268 jQuery.ajaxSetup({ dataType: 'json' });1269 });1270 })1271 .then(function () {1272 casper.waitForSelector('.coding-rule');1273 })1274 .then(function () {1275 test.assertSelectorContains('#coding-rules-total', 609);1276 lib.clearRequestMock(this.searchMock);1277 lib.fmock('/api/rules/search', 'search2.json');1278 casper.click('.js-reload');1279 casper.waitForSelectorTextChange('#coding-rules-total');1280 })1281 .then(function () {1282 test.assertSelectorContains('#coding-rules-total', 413);1283 });1284 });1285 it('should do a new search', 3, function (casper, test) {1286 return casper1287 .start(lib.buildUrl('base'), function () {1288 lib.setDefaultViewport();1289 lib.smock('/api/l10n/index', '{}');1290 lib.fmock('/api/rules/app', 'app.json');1291 lib.fmock('/api/rules/search', 'search2.json', { data: { languages: 'java' } });1292 lib.fmock('/api/rules/search', 'search.json');1293 })1294 .then(function () {1295 casper.evaluate(function () {1296 require(['apps/coding-rules/app'], function (App) {1297 App.start({ el: '#content' });1298 });1299 jQuery.ajaxSetup({ dataType: 'json' });1300 });1301 })1302 .then(function () {1303 casper.waitForSelector('.coding-rule');1304 })1305 .then(function () {1306 test.assertSelectorContains('#coding-rules-total', 609);1307 casper.click('.js-facet[data-value="java"]');1308 casper.waitForSelectorTextChange('#coding-rules-total');1309 })1310 .then(function () {1311 test.assertSelectorContains('#coding-rules-total', 413);1312 casper.click('.js-new-search');1313 casper.waitForSelectorTextChange('#coding-rules-total');1314 })1315 .then(function () {1316 test.assertSelectorContains('#coding-rules-total', 609);1317 });1318 });1319 it('should go back', 2, function (casper, test) {1320 return casper1321 .start(lib.buildUrl('base'), function () {1322 lib.setDefaultViewport();1323 lib.smock('/api/l10n/index', '{}');1324 lib.fmock('/api/rules/app', 'app.json');1325 lib.fmock('/api/rules/search', 'search.json');1326 lib.fmock('/api/rules/show', 'show.json');1327 })1328 .then(function () {1329 casper.evaluate(function () {1330 require(['apps/coding-rules/app'], function (App) {1331 App.start({ el: '#content' });1332 });1333 jQuery.ajaxSetup({ dataType: 'json' });1334 });1335 })1336 .then(function () {1337 casper.waitForSelector('.coding-rule.selected', function () {1338 casper.click('.coding-rule.selected .js-rule');1339 });1340 })1341 .then(function () {1342 casper.waitForSelector('.coding-rules-detail-header');1343 })1344 .then(function () {1345 casper.click('.js-back');1346 test.assertDoesntExist('.js-back');1347 test.assertDoesntExist('.coding-rules-detail-header');1348 });1349 });1350 it('should show inheritance facet', 11, function (casper, test) {1351 return casper1352 .start(lib.buildUrl('base'), function () {1353 lib.setDefaultViewport();1354 lib.fmock('/api/rules/app', 'app.json');1355 lib.fmock('/api/rules/search', 'search-not-inherited.json', { data: { inheritance: 'NONE' } });1356 lib.fmock('/api/rules/search', 'search-inherited.json', { data: { inheritance: 'INHERITED' } });1357 lib.fmock('/api/rules/search', 'search-overriden.json', { data: { inheritance: 'OVERRIDES' } });1358 lib.fmock('/api/rules/search', 'search-qprofile.json',1359 { data: { qprofile: 'java-default-with-mojo-conventions-49307' } });1360 lib.fmock('/api/rules/search', 'search-qprofile2.json',1361 { data: { qprofile: 'java-top-profile-without-formatting-conventions-50037' } });1362 lib.fmock('/api/rules/search', 'search.json');1363 })1364 .then(function () {1365 casper.evaluate(function () {1366 require(['apps/coding-rules/app'], function (App) {1367 App.start({ el: '#content' });1368 });1369 });1370 })1371 .then(function () {1372 casper.waitForSelector('.coding-rule');1373 })1374 .then(function () {1375 test.assertSelectorContains('#coding-rules-total', '609');1376 test.assertExists('.search-navigator-facet-box-forbidden[data-property="inheritance"]');1377 casper.click('[data-property="qprofile"] .js-facet-toggle');1378 casper.waitForSelector('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');1379 })1380 .then(function () {1381 casper.click('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');1382 casper.waitForSelectorTextChange('#coding-rules-total');1383 })1384 .then(function () {1385 test.assertSelectorContains('#coding-rules-total', '407');1386 test.assertDoesntExist('.search-navigator-facet-box-forbidden[data-property="inheritance"]');1387 casper.click('[data-property="inheritance"] .js-facet-toggle');1388 casper.waitForSelector('[data-property="inheritance"] [data-value="NONE"]');1389 })1390 .then(function () {1391 casper.click('[data-property="inheritance"] [data-value="NONE"]');1392 casper.waitForSelectorTextChange('#coding-rules-total');1393 })1394 .then(function () {1395 test.assertSelectorContains('#coding-rules-total', '103');1396 casper.click('[data-property="inheritance"] [data-value="INHERITED"]');1397 casper.waitForSelectorTextChange('#coding-rules-total');1398 })1399 .then(function () {1400 test.assertSelectorContains('#coding-rules-total', '101');1401 casper.click('[data-property="inheritance"] [data-value="OVERRIDES"]');1402 casper.waitForSelectorTextChange('#coding-rules-total');1403 })1404 .then(function () {1405 test.assertSelectorContains('#coding-rules-total', '102');1406 casper.click('.js-facet[data-value="java-top-profile-without-formatting-conventions-50037"]');1407 casper.waitForSelectorTextChange('#coding-rules-total');1408 })1409 .then(function () {1410 test.assertSelectorContains('#coding-rules-total', '408');1411 test.assertExists('.search-navigator-facet-box-forbidden[data-property="inheritance"]');1412 casper.click('[data-property="qprofile"] .js-facet-toggle');1413 casper.waitForSelectorTextChange('#coding-rules-total');1414 })1415 .then(function () {1416 test.assertSelectorContains('#coding-rules-total', '609');1417 test.assertExists('.search-navigator-facet-box-forbidden[data-property="inheritance"]');1418 });1419 });1420 it('should show activation details', 5, function (casper, test) {1421 return casper1422 .start(lib.buildUrl('base'), function () {1423 lib.setDefaultViewport();1424 lib.smock('/api/l10n/index', '{}');1425 lib.fmock('/api/rules/app', 'app.json');1426 lib.fmock('/api/rules/search', 'search-actives.json', { data: { activation: true } });1427 lib.fmock('/api/rules/search', 'search.json');1428 })1429 .then(function () {1430 casper.evaluate(function () {1431 require(['apps/coding-rules/app'], function (App) {1432 App.start({ el: '#content' });1433 });1434 jQuery.ajaxSetup({ dataType: 'json' });1435 });1436 })1437 .then(function () {1438 casper.waitForSelector('.coding-rule');1439 })1440 .then(function () {1441 test.assertDoesntExist('.coding-rule-activation');1442 casper.click('[data-property="qprofile"] .js-facet-toggle');1443 casper.waitForSelector('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');1444 })1445 .then(function () {1446 casper.click('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');1447 casper.waitForSelectorTextChange('#coding-rules-total');1448 })1449 .then(function () {1450 test.assertElementCount('.coding-rule-activation', 2);1451 test.assertElementCount('.coding-rule-activation .icon-severity-major', 2);1452 test.assertElementCount('.coding-rule-activation .icon-inheritance', 1);1453 test.assertDoesntExist('.coding-rules-detail-quality-profile-activate');1454 });1455 });1456 it('should activate rule', 9, function (casper, test) {1457 return casper1458 .start(lib.buildUrl('base'), function () {1459 lib.setDefaultViewport();1460 lib.smock('/api/l10n/index', '{}');1461 lib.fmock('/api/rules/app', 'app.json');1462 lib.fmock('/api/rules/search', 'search-inactive.json', { data: { activation: 'false' } });1463 lib.fmock('/api/rules/search', 'search.json');1464 lib.smock('/api/qualityprofiles/activate_rule', '{}');1465 })1466 .then(function () {1467 casper.evaluate(function () {1468 require(['apps/coding-rules/app'], function (App) {1469 App.start({ el: '#content' });1470 });1471 jQuery.ajaxSetup({ dataType: 'json' });1472 });1473 })1474 .then(function () {1475 casper.waitForSelector('.coding-rule');1476 })1477 .then(function () {1478 test.assertDoesntExist('.coding-rule-activation');1479 casper.click('[data-property="qprofile"] .js-facet-toggle');1480 casper.waitForSelector('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');1481 })1482 .then(function () {1483 casper.click('.js-facet[data-value="java-default-with-mojo-conventions-49307"]');1484 casper.click('.js-facet[data-value="java-default-with-mojo-conventions-49307"] .js-inactive');1485 casper.waitForSelectorTextChange('#coding-rules-total');1486 })1487 .then(function () {1488 test.assertDoesntExist('.coding-rule-activation .icon-severity-major');1489 test.assertExists('.coding-rules-detail-quality-profile-activate');1490 casper.click('.coding-rules-detail-quality-profile-activate');1491 casper.waitForSelector('.modal');1492 })1493 .then(function () {1494 test.assertExists('#coding-rules-quality-profile-activation-select');1495 test.assertElementCount('#coding-rules-quality-profile-activation-select option', 1);1496 test.assertExists('#coding-rules-quality-profile-activation-severity');1497 casper.click('#coding-rules-quality-profile-activation-activate');1498 casper.waitForSelector('.coding-rule-activation .icon-severity-major');1499 })1500 .then(function () {1501 test.assertExist('.coding-rule-activation .icon-severity-major');1502 test.assertDoesntExist('.coding-rules-detail-quality-profile-activate');1503 test.assertExist('.coding-rules-detail-quality-profile-deactivate');1504 });1505 });1506 it('should deactivate rule', 6, function (casper, test) {1507 return casper1508 .start(lib.buildUrl('base'), function () {1509 lib.setDefaultViewport();1510 lib.smock('/api/l10n/index', '{}');1511 lib.fmock('/api/rules/app', 'app.json');1512 lib.fmock('/api/rules/search', 'search-active.json', { data: { activation: true } });1513 lib.fmock('/api/rules/search', 'search.json');1514 lib.smock('/api/qualityprofiles/deactivate_rule', '{}');1515 })1516 .then(function () {1517 casper.evaluate(function () {1518 require(['apps/coding-rules/app'], function (App) {1519 App.start({ el: '#content' });1520 });1521 jQuery.ajaxSetup({ dataType: 'json' });1522 });1523 })...

Full Screen

Full Screen

quality-profiles.js

Source:quality-profiles.js Github

copy

Full Screen

...3describe('Quality Profiles App', function () {4 it('should show list', 9, function (casper, test) {5 return casper6 .start(lib.buildUrl('base'), function () {7 lib.setDefaultViewport();8 lib.fmock('/api/users/current', 'user.json');9 lib.fmock('/api/qualityprofiles/search', 'search.json');10 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');11 lib.fmock('/api/languages/list', 'languages.json');12 })13 .then(function () {14 casper.evaluate(function () {15 require(['apps/quality-profiles/app'], function (App) {16 App.start({ el: '#content', urlRoot: '/pages/base' });17 });18 });19 })20 .then(function () {21 casper.waitForSelector('.js-list .list-group-item');22 })23 .then(function () {24 test.assertElementCount('.js-list .list-group-item', 5);25 test.assertSelectorContains('.js-list .list-group-item', 'Sonar way');26 test.assertSelectorContains('.js-list .list-group-item', 'PSR-2');27 test.assertElementCount('.js-list-language', 4);28 test.assertSelectorContains('.js-list-language', 'Java');29 test.assertSelectorContains('.js-list-language', 'JavaScript');30 test.assertSelectorContains('.js-list-language', 'PHP');31 test.assertSelectorContains('.js-list-language', 'Python');32 test.assertElementCount('.js-list .badge', 4);33 });34 });35 it('should filter list by language', 15, function (casper, test) {36 return casper37 .start(lib.buildUrl('base'), function () {38 lib.setDefaultViewport();39 lib.fmock('/api/users/current', 'user.json');40 lib.fmock('/api/qualityprofiles/search', 'search.json');41 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');42 lib.fmock('/api/languages/list', 'languages.json');43 })44 .then(function () {45 casper.evaluate(function () {46 require(['apps/quality-profiles/app'], function (App) {47 App.start({ el: '#content', urlRoot: '/pages/base' });48 });49 });50 })51 .then(function () {52 casper.waitForSelector('.js-list .list-group-item');53 })54 .then(function () {55 test.assertElementCount('.js-list .list-group-item', 5);56 test.assertVisible('.js-list .list-group-item[data-key="java-sonar-way-67887"]');57 test.assertVisible('.js-list .list-group-item[data-key="js-sonar-way-71566"]');58 test.assertElementCount('.js-list-language', 4);59 test.assertVisible('.js-list-language[data-language="java"]');60 test.assertVisible('.js-list-language[data-language="js"]');61 })62 .then(function () {63 test.assertExists('#quality-profiles-filter-by-language');64 casper.click('.js-filter-by-language[data-language="js"]');65 })66 .then(function () {67 test.assertNotVisible('.js-list .list-group-item[data-key="java-sonar-way-67887"]');68 test.assertVisible('.js-list .list-group-item[data-key="js-sonar-way-71566"]');69 test.assertNotVisible('.js-list-language[data-language="java"]');70 test.assertVisible('.js-list-language[data-language="js"]');71 })72 .then(function () {73 casper.click('.js-filter-by-language:nth-child(1)');74 })75 .then(function () {76 test.assertVisible('.js-list .list-group-item[data-key="java-sonar-way-67887"]');77 test.assertVisible('.js-list .list-group-item[data-key="js-sonar-way-71566"]');78 test.assertVisible('.js-list-language[data-language="java"]');79 test.assertVisible('.js-list-language[data-language="js"]');80 });81 });82 it('should show details', 10, function (casper, test) {83 return casper84 .start(lib.buildUrl('base'), function () {85 lib.setDefaultViewport();86 lib.fmock('/api/users/current', 'user.json');87 lib.fmock('/api/qualityprofiles/search', 'search.json');88 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');89 lib.fmock('/api/languages/list', 'languages.json');90 lib.fmock('/api/rules/search', 'rules.json',91 { data: { qprofile: 'java-sonar-way-67887', activation: 'true' } });92 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json', {93 data: { profileKey: 'java-sonar-way-67887' }94 });95 })96 .then(function () {97 casper.evaluate(function () {98 require(['apps/quality-profiles/app'], function (App) {99 App.start({ el: '#content', urlRoot: '/pages/base' });100 });101 });102 })103 .then(function () {104 casper.waitForSelector('.js-list .list-group-item');105 })106 .then(function () {107 casper.click('.js-list .list-group-item[data-key="java-sonar-way-67887"]');108 casper.waitForSelector('.search-navigator-header-component');109 })110 .then(function () {111 test.assertElementCount('.js-list .list-group-item.active', 1);112 test.assertSelectorContains('.js-list .list-group-item.active', 'Sonar way');113 test.assertSelectorContains('.search-navigator-workspace-header', 'Sonar way');114 test.assertSelectorContains('.search-navigator-workspace-header', 'Java');115 test.assertExists('#quality-profile-backup');116 test.assertDoesntExist('#quality-profile-rename');117 test.assertDoesntExist('#quality-profile-copy');118 test.assertDoesntExist('#quality-profile-delete');119 test.assertDoesntExist('#quality-profile-set-as-default');120 test.assertDoesntExist('#quality-profile-change-parent');121 });122 });123 it('should show details for admin', 10, function (casper, test) {124 return casper125 .start(lib.buildUrl('base'), function () {126 lib.setDefaultViewport();127 lib.fmock('/api/users/current', 'user-admin.json');128 lib.fmock('/api/qualityprofiles/search', 'search.json');129 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');130 lib.fmock('/api/languages/list', 'languages.json');131 lib.fmock('/api/rules/search', 'rules.json',132 { data: { qprofile: 'java-sonar-way-67887', activation: 'true' } });133 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json', {134 data: { profileKey: 'java-sonar-way-67887' }135 });136 })137 .then(function () {138 casper.evaluate(function () {139 require(['apps/quality-profiles/app'], function (App) {140 App.start({ el: '#content', urlRoot: '/pages/base' });141 });142 });143 })144 .then(function () {145 casper.waitForSelector('.js-list .list-group-item');146 })147 .then(function () {148 casper.click('.js-list .list-group-item[data-key="java-sonar-way-67887"]');149 casper.waitForSelector('.search-navigator-header-component');150 })151 .then(function () {152 test.assertElementCount('.js-list .list-group-item.active', 1);153 test.assertSelectorContains('.js-list .list-group-item.active', 'Sonar way');154 test.assertSelectorContains('.search-navigator-workspace-header', 'Sonar way');155 test.assertSelectorContains('.search-navigator-workspace-header', 'Java');156 test.assertExists('#quality-profile-backup');157 test.assertExists('#quality-profile-rename');158 test.assertExists('#quality-profile-copy');159 test.assertDoesntExist('#quality-profile-delete');160 test.assertDoesntExist('#quality-profile-set-as-default');161 test.assertExists('#quality-profile-change-parent');162 });163 });164 it('should show inheritance details', 10, function (casper, test) {165 return casper166 .start(lib.buildUrl('base'), function () {167 lib.setDefaultViewport();168 lib.fmock('/api/users/current', 'user-admin.json');169 lib.fmock('/api/qualityprofiles/search', 'search-inheritance.json');170 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');171 lib.fmock('/api/languages/list', 'languages.json');172 lib.fmock('/api/rules/search', 'rules.json');173 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance-plus.json', {174 data: { profileKey: 'java-inherited-profile-85155' }175 });176 })177 .then(function () {178 casper.evaluate(function () {179 require(['apps/quality-profiles/app'], function (App) {180 App.start({ el: '#content', urlRoot: '/pages/base' });181 });182 });183 })184 .then(function () {185 casper.waitForSelector('.js-list .list-group-item');186 })187 .then(function () {188 casper.click('.js-list .list-group-item[data-key="java-inherited-profile-85155"]');189 casper.waitForSelector('.search-navigator-header-component');190 })191 .then(function () {192 test.assertElementCount('#quality-profile-ancestors li', 1);193 test.assertSelectorContains('#quality-profile-ancestors', 'Sonar way');194 test.assertSelectorContains('#quality-profile-ancestors', '161');195 test.assertElementCount('#quality-profile-inheritance-current', 1);196 test.assertSelectorContains('#quality-profile-inheritance-current', 'Inherited Profile');197 test.assertSelectorContains('#quality-profile-inheritance-current', '163');198 test.assertSelectorContains('#quality-profile-inheritance-current', '7');199 test.assertElementCount('#quality-profile-children li', 1);200 test.assertSelectorContains('#quality-profile-children', 'Second Level Inherited Profile');201 test.assertSelectorContains('#quality-profile-children', '165');202 });203 });204 it('should show selected projects', 2, function (casper, test) {205 return casper206 .start(lib.buildUrl('base'), function () {207 lib.setDefaultViewport();208 lib.fmock('/api/users/current', 'user-admin.json');209 lib.fmock('/api/qualityprofiles/search', 'search.json');210 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');211 lib.fmock('/api/languages/list', 'languages.json');212 lib.fmock('/api/rules/search', 'rules.json');213 lib.fmock('/api/qualityprofiles/projects?key=php-psr-2-46772', 'projects.json');214 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');215 })216 .then(function () {217 casper.evaluate(function () {218 require(['apps/quality-profiles/app'], function (App) {219 App.start({ el: '#content', urlRoot: '/pages/base' });220 });221 });222 })223 .then(function () {224 casper.waitForSelector('.js-list .list-group-item');225 })226 .then(function () {227 casper.click('.js-list .list-group-item[data-key="php-psr-2-46772"]');228 casper.waitForSelector('#quality-profile-projects');229 })230 .then(function () {231 lib.waitForElementCount('#quality-profile-projects .select-list-list li', 2);232 })233 .then(function () {234 test.assertSelectorContains('#quality-profile-projects .select-list-list li', 'CSS');235 test.assertSelectorContains('#quality-profile-projects .select-list-list li', 'http-request-parent');236 });237 });238 it('should move between profiles', 1, function (casper, test) {239 return casper240 .start(lib.buildUrl('base'), function () {241 lib.setDefaultViewport();242 lib.fmock('/api/users/current', 'user.json');243 lib.fmock('/api/qualityprofiles/search', 'search-inheritance.json');244 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');245 lib.fmock('/api/languages/list', 'languages.json');246 this.rulesMock = lib.fmock('/api/rules/search', 'rules.json',247 { data: { qprofile: 'java-inherited-profile-85155', activation: 'true' } });248 this.inheritanceMock = lib.fmock('/api/qualityprofiles/inheritance', 'inheritance-plus.json');249 })250 .then(function () {251 casper.evaluate(function () {252 require(['apps/quality-profiles/app'], function (App) {253 App.start({ el: '#content', urlRoot: '/pages/base' });254 });255 });256 })257 .then(function () {258 casper.waitForSelector('.js-list .list-group-item');259 })260 .then(function () {261 casper.click('.js-list .list-group-item[data-key="java-inherited-profile-85155"]');262 casper.waitForSelector('#quality-profile-ancestors');263 })264 .then(function () {265 lib.clearRequestMock(this.rulesMock);266 lib.clearRequestMock(this.inheritanceMock);267 lib.fmock('/api/rules/search', 'rules.json',268 { data: { qprofile: 'java-sonar-way-67887', activation: 'true' } });269 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');270 casper.click('#quality-profile-ancestors .js-profile[data-key="java-sonar-way-67887"]');271 casper.waitForSelectorTextChange('.search-navigator-header-component');272 })273 .then(function () {274 test.assertSelectorContains('.search-navigator-header-component', 'Sonar way');275 });276 });277 it('should copy profile', 5, function (casper, test) {278 return casper279 .start(lib.buildUrl('base'), function () {280 lib.setDefaultViewport();281 lib.fmock('/api/users/current', 'user-admin.json');282 lib.fmock('/api/qualityprofiles/search', 'search.json');283 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');284 lib.fmock('/api/languages/list', 'languages.json');285 lib.fmock('/api/rules/search', 'rules.json');286 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');287 lib.fmock('/api/qualityprofiles/copy', 'copy.json', {288 data: { fromKey: 'java-sonar-way-67887', toName: 'Copied Profile' }289 });290 })291 .then(function () {292 casper.evaluate(function () {293 require(['apps/quality-profiles/app'], function (App) {294 App.start({ el: '#content', urlRoot: '/pages/base' });295 });296 jQuery.ajaxSetup({ dataType: 'json' });297 });298 })299 .then(function () {300 casper.waitForSelector('.js-list .list-group-item');301 })302 .then(function () {303 test.assertElementCount('.js-list .list-group-item', 5);304 casper.click('.js-list .list-group-item[data-key="java-sonar-way-67887"]');305 casper.waitForSelector('#quality-profile-copy');306 })307 .then(function () {308 casper.click('#quality-profile-copy');309 casper.waitForSelector('.modal');310 })311 .then(function () {312 casper.evaluate(function () {313 jQuery('#copy-profile-name').val('Copied Profile');314 });315 casper.click('#copy-profile-submit');316 casper.waitForSelectorTextChange('.search-navigator-header-component');317 })318 .then(function () {319 test.assertElementCount('.js-list .list-group-item', 6);320 test.assertSelectorContains('.js-list .list-group-item.active', 'Copied Profile');321 test.assertSelectorContains('.search-navigator-header-component', 'Copied Profile');322 test.assertSelectorContains('.search-navigator-header-component', 'Java');323 });324 });325 it('should rename profile', 2, function (casper, test) {326 return casper327 .start(lib.buildUrl('base'), function () {328 lib.setDefaultViewport();329 lib.fmock('/api/users/current', 'user-admin.json');330 this.searchMock = lib.fmock('/api/qualityprofiles/search', 'search.json');331 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');332 lib.fmock('/api/languages/list', 'languages.json');333 lib.fmock('/api/rules/search', 'rules.json');334 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');335 lib.smock('/api/qualityprofiles/rename', '{}', {336 data: { key: 'java-sonar-way-67887', name: 'Renamed Profile' }337 });338 })339 .then(function () {340 casper.evaluate(function () {341 require(['apps/quality-profiles/app'], function (App) {342 App.start({ el: '#content', urlRoot: '/pages/base' });343 });344 jQuery.ajaxSetup({ dataType: 'json' });345 });346 })347 .then(function () {348 casper.waitForSelector('.js-list .list-group-item');349 })350 .then(function () {351 casper.click('.js-list .list-group-item[data-key="java-sonar-way-67887"]');352 casper.waitForSelector('#quality-profile-rename');353 })354 .then(function () {355 casper.click('#quality-profile-rename');356 casper.waitForSelector('.modal');357 })358 .then(function () {359 lib.clearRequestMock(this.searchMock);360 lib.fmock('/api/qualityprofiles/search', 'search-renamed.json');361 casper.evaluate(function () {362 jQuery('#rename-profile-name').val('Renamed Profile');363 });364 casper.click('#rename-profile-submit');365 casper.waitForSelectorTextChange('.search-navigator-header-component');366 })367 .then(function () {368 test.assertSelectorContains('.js-list .list-group-item.active', 'Renamed Profile');369 test.assertSelectorContains('.search-navigator-header-component', 'Renamed Profile');370 });371 });372 it('should make profile default', 4, function (casper, test) {373 return casper374 .start(lib.buildUrl('base'), function () {375 lib.setDefaultViewport();376 lib.fmock('/api/users/current', 'user-admin.json');377 this.searchMock = lib.fmock('/api/qualityprofiles/search', 'search.json');378 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');379 lib.fmock('/api/languages/list', 'languages.json');380 lib.fmock('/api/rules/search', 'rules.json');381 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');382 lib.smock('/api/qualityprofiles/set_default', '{}', {383 data: { profileKey: 'php-psr-2-46772' }384 });385 })386 .then(function () {387 casper.evaluate(function () {388 require(['apps/quality-profiles/app'], function (App) {389 App.start({ el: '#content', urlRoot: '/pages/base' });390 });391 jQuery.ajaxSetup({ dataType: 'json' });392 });393 })394 .then(function () {395 casper.waitForSelector('.js-list .list-group-item');396 })397 .then(function () {398 test.assertDoesntExist('.js-list .list-group-item[data-key="php-psr-2-46772"] .badge');399 test.assertExists('.js-list .list-group-item[data-key="php-sonar-way-10778"] .badge');400 casper.click('.js-list .list-group-item[data-key="php-psr-2-46772"]');401 casper.waitForSelector('#quality-profile-set-as-default');402 })403 .then(function () {404 lib.clearRequestMock(this.searchMock);405 lib.fmock('/api/qualityprofiles/search', 'search-another-default.json');406 casper.click('#quality-profile-set-as-default');407 casper.waitWhileSelector('.js-list .list-group-item[data-key="php-sonar-way-10778"] .badge');408 })409 .then(function () {410 test.assertDoesntExist('#quality-profile-set-as-default');411 test.assertExists('.js-list .list-group-item[data-key="php-psr-2-46772"] .badge');412 });413 });414 it('should delete profile', 2, function (casper, test) {415 return casper416 .start(lib.buildUrl('base'), function () {417 lib.setDefaultViewport();418 lib.fmock('/api/users/current', 'user-admin.json');419 this.searchMock = lib.fmock('/api/qualityprofiles/search', 'search-with-copy.json');420 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');421 lib.fmock('/api/languages/list', 'languages.json');422 lib.fmock('/api/rules/search', 'rules.json');423 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');424 lib.smock('/api/qualityprofiles/delete', '{}', {425 data: { profileKey: 'java-copied-profile-11711' }426 });427 })428 .then(function () {429 casper.evaluate(function () {430 require(['apps/quality-profiles/app'], function (App) {431 App.start({ el: '#content', urlRoot: '/pages/base' });432 });433 jQuery.ajaxSetup({ dataType: 'json' });434 });435 })436 .then(function () {437 casper.waitForSelector('.js-list .list-group-item');438 })439 .then(function () {440 test.assertElementCount('.js-list .list-group-item', 6);441 casper.click('.js-list .list-group-item[data-key="java-copied-profile-11711"]');442 casper.waitForSelector('#quality-profile-delete');443 })444 .then(function () {445 casper.click('#quality-profile-delete');446 casper.waitForSelector('.modal');447 })448 .then(function () {449 lib.clearRequestMock(this.searchMock);450 lib.fmock('/api/qualityprofiles/search', 'search.json');451 casper.click('#delete-profile-submit');452 lib.waitForElementCount('.js-list .list-group-item', 5);453 })454 .then(function () {455 test.assertSelectorDoesntContain('.js-list .list-group-item', 'Copied Profile');456 });457 });458 it('should create profile', 1, function (casper, test) {459 return casper460 .start(lib.buildUrl('base'), function () {461 lib.setDefaultViewport();462 lib.fmock('/api/users/current', 'user-admin.json');463 this.searchMock = lib.fmock('/api/qualityprofiles/search', 'search.json');464 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');465 lib.fmock('/api/rules/search', 'rules.json');466 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');467 lib.fmock('/api/languages/list', 'languages.json');468 lib.fmock('/api/qualityprofiles/importers', 'importers-empty.json');469 })470 .then(function () {471 casper.evaluate(function () {472 require(['apps/quality-profiles/app'], function (App) {473 App.start({ el: '#content', urlRoot: '/pages/base' });474 });475 jQuery.ajaxSetup({ dataType: 'json' });476 });477 })478 .then(function () {479 casper.waitForSelector('.js-list .list-group-item');480 })481 .then(function () {482 test.assertElementCount('.js-list .list-group-item', 5);483 casper.click('#quality-profiles-create');484 casper.waitForSelector('.modal');485 })486 .then(function () {487 lib.clearRequestMock(this.searchMock);488 lib.fmock('/api/qualityprofiles/search', 'search-with-copy.json');489 casper.evaluate(function () {490 jQuery('#create-profile-name').val('Copied Profile');491 jQuery('#create-profile-language').val('java');492 });493 casper.click('#create-profile-submit');494 lib.waitForElementCount('.js-list .list-group-item', 6);495 });496 });497 it('should restore profile', 1, function (casper, test) {498 return casper499 .start(lib.buildUrl('base'), function () {500 lib.setDefaultViewport();501 lib.fmock('/api/users/current', 'user-admin.json');502 this.searchMock = lib.fmock('/api/qualityprofiles/search', 'search.json');503 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');504 lib.fmock('/api/languages/list', 'languages.json');505 lib.fmock('/api/rules/search', 'rules.json');506 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');507 })508 .then(function () {509 casper.evaluate(function () {510 require(['apps/quality-profiles/app'], function (App) {511 App.start({ el: '#content', urlRoot: '/pages/base' });512 });513 jQuery.ajaxSetup({ dataType: 'json' });514 });515 })516 .then(function () {517 casper.waitForSelector('.js-list .list-group-item');518 })519 .then(function () {520 test.assertElementCount('.js-list .list-group-item', 5);521 casper.click('#quality-profiles-restore');522 casper.waitForSelector('.modal');523 })524 .then(function () {525 casper.click('#restore-profile-submit');526 lib.waitForElementCount('.js-list .list-group-item', 6);527 });528 });529 it('should show importers', 6, function (casper, test) {530 return casper531 .start(lib.buildUrl('base'), function () {532 lib.setDefaultViewport();533 lib.fmock('/api/users/current', 'user-admin.json');534 lib.fmock('/api/qualityprofiles/search', 'search.json');535 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');536 lib.fmock('/api/rules/search', 'rules.json');537 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');538 lib.fmock('/api/languages/list', 'languages.json');539 lib.fmock('/api/qualityprofiles/importers', 'importers.json');540 })541 .then(function () {542 casper.evaluate(function () {543 require(['apps/quality-profiles/app'], function (App) {544 App.start({ el: '#content', urlRoot: '/pages/base' });545 });546 jQuery.ajaxSetup({ dataType: 'json' });547 });548 })549 .then(function () {550 casper.waitForSelector('.js-list .list-group-item');551 })552 .then(function () {553 casper.click('#quality-profiles-create');554 casper.waitForSelector('.modal');555 })556 .then(function () {557 test.assertVisible('.js-importer[data-key="pmd"]');558 test.assertVisible('.js-importer[data-key="random"]');559 casper.evaluate(function () {560 jQuery('#create-profile-language').val('js').change();561 });562 })563 .then(function () {564 test.assertNotVisible('.js-importer[data-key="pmd"]');565 test.assertVisible('.js-importer[data-key="random"]');566 casper.evaluate(function () {567 jQuery('#create-profile-language').val('py').change();568 });569 })570 .then(function () {571 test.assertNotVisible('.js-importer[data-key="pmd"]');572 test.assertNotVisible('.js-importer[data-key="random"]');573 });574 });575 it('should restore built-in profiles', 3, function (casper, test) {576 return casper577 .start(lib.buildUrl('base'), function () {578 lib.setDefaultViewport();579 lib.fmock('/api/users/current', 'user-admin.json');580 this.searchMock = lib.fmock('/api/qualityprofiles/search', 'search-modified.json');581 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');582 lib.fmock('/api/rules/search', 'rules.json');583 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');584 lib.smock('/api/qualityprofiles/restore_built_in', '{}', {585 data: { language: 'java' }586 });587 lib.fmock('/api/languages/list', 'languages.json');588 })589 .then(function () {590 casper.evaluate(function () {591 require(['apps/quality-profiles/app'], function (App) {592 App.start({ el: '#content', urlRoot: '/pages/base' });593 });594 jQuery.ajaxSetup({ dataType: 'json' });595 });596 })597 .then(function () {598 casper.waitForSelector('.js-list .list-group-item');599 })600 .then(function () {601 test.assertElementCount('.js-list .list-group-item', 1);602 casper.click('#quality-profiles-restore-built-in');603 casper.waitForSelector('.modal');604 })605 .then(function () {606 lib.clearRequestMock(this.searchMock);607 lib.fmock('/api/qualityprofiles/search', 'search.json');608 casper.evaluate(function () {609 jQuery('#restore-built-in-profiles-language').val('java');610 });611 casper.click('#restore-built-in-profiles-submit');612 lib.waitForElementCount('.js-list .list-group-item', 5);613 })614 .then(function () {615 test.assertSelectorContains('.js-list .list-group-item', 'Sonar way');616 test.assertDoesntExist('.search-navigator-header-component');617 });618 });619 it('should change profile\'s parent', 1, function (casper, test) {620 return casper621 .start(lib.buildUrl('base'), function () {622 lib.setDefaultViewport();623 lib.fmock('/api/users/current', 'user-admin.json');624 this.searchMock = lib.fmock('/api/qualityprofiles/search', 'search-change-parent.json');625 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');626 lib.fmock('/api/languages/list', 'languages.json');627 lib.fmock('/api/rules/search', 'rules.json');628 this.inheritanceMock = lib.fmock('/api/qualityprofiles/inheritance',629 'inheritance-change-parent.json');630 lib.smock('/api/qualityprofiles/change_parent', '{}', {631 data: { profileKey: 'java-inherited-profile-85155', parentKey: 'java-another-profile-00609' }632 });633 })634 .then(function () {635 casper.evaluate(function () {636 require(['apps/quality-profiles/app'], function (App) {637 App.start({ el: '#content', urlRoot: '/pages/base' });638 });639 jQuery.ajaxSetup({ dataType: 'json' });640 });641 })642 .then(function () {643 casper.waitForSelector('.js-list .list-group-item');644 })645 .then(function () {646 casper.click('.js-list .list-group-item[data-key="java-inherited-profile-85155"]');647 casper.waitForSelector('#quality-profile-change-parent');648 })649 .then(function () {650 casper.click('#quality-profile-change-parent');651 casper.waitForSelector('.modal');652 })653 .then(function () {654 lib.clearRequestMock(this.searchMock);655 lib.fmock('/api/qualityprofiles/search', 'search-changed-parent.json');656 lib.clearRequestMock(this.inheritanceMock);657 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance-changed-parent.json');658 casper.evaluate(function () {659 jQuery('#change-profile-parent').val('java-another-profile-00609');660 });661 casper.click('#change-profile-parent-submit');662 casper.waitForSelectorTextChange('#quality-profile-ancestors');663 })664 .then(function () {665 test.assertSelectorContains('#quality-profile-ancestors', 'Another Profile');666 });667 });668 it('should open permalink', 9, function (casper, test) {669 return casper670 .start(lib.buildUrl('base#show?key=java-sonar-way-67887'), function () {671 lib.setDefaultViewport();672 lib.fmock('/api/users/current', 'user-admin.json');673 lib.fmock('/api/qualityprofiles/search', 'search.json');674 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');675 lib.fmock('/api/languages/list', 'languages.json');676 lib.fmock('/api/rules/search', 'rules.json');677 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');678 })679 .then(function () {680 casper.evaluate(function () {681 require(['apps/quality-profiles/app'], function (App) {682 App.start({ el: '#content', urlRoot: '/pages/base' });683 });684 });685 })686 .then(function () {687 casper.waitForSelector('#quality-profile-rename');688 })689 .then(function () {690 test.assertElementCount('.js-list .list-group-item.active', 1);691 test.assertSelectorContains('.js-list .list-group-item.active', 'Sonar way');692 test.assertSelectorContains('.search-navigator-workspace-header', 'Sonar way');693 test.assertSelectorContains('.search-navigator-workspace-header', 'Java');694 test.assertExists('#quality-profile-backup');695 test.assertExists('#quality-profile-rename');696 test.assertExists('#quality-profile-copy');697 test.assertDoesntExist('#quality-profile-delete');698 test.assertDoesntExist('#quality-profile-set-as-default');699 });700 });701 it('should show changelog', 22, function (casper, test) {702 return casper703 .start(lib.buildUrl('base#show?key=java-sonar-way-67887'), function () {704 lib.setDefaultViewport();705 lib.fmock('/api/users/current', 'user.json');706 lib.fmock('/api/qualityprofiles/search', 'search.json');707 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');708 lib.fmock('/api/languages/list', 'languages.json');709 lib.fmock('/api/rules/search', 'rules.json');710 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');711 lib.fmock('/api/qualityprofiles/changelog', 'changelog2.json', {712 data: { p: '2', profileKey: 'java-sonar-way-67887' }713 });714 lib.fmock('/api/qualityprofiles/changelog', 'changelog.json', {715 data: { profileKey: 'java-sonar-way-67887' }716 });717 })718 .then(function () {719 casper.evaluate(function () {720 require(['apps/quality-profiles/app'], function (App) {721 App.start({ el: '#content', urlRoot: '/pages/base' });722 });723 });724 })725 .then(function () {726 casper.waitForSelector('#quality-profile-changelog-form-submit');727 })728 .then(function () {729 test.assertDoesntExist('.js-show-more-changelog');730 casper.click('#quality-profile-changelog-form-submit');731 casper.waitForSelector('#quality-profile-changelog table');732 })733 .then(function () {734 test.assertExists('.js-show-more-changelog');735 test.assertElementCount('#quality-profile-changelog tbody tr', 2);736 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(1)', 'April 13 2015');737 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(1)', 'System');738 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(1)', 'ACTIVATED');739 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(1)', 'Synchronisation should not');740 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(1)', 'BLOCKER');741 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(2)', 'April 13 2015');742 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(2)', 'Anakin Skywalker');743 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(2)', 'ACTIVATED');744 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(2)', 'Double.longBitsToDouble');745 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(2)', 'threshold');746 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(2)', '3');747 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(2)', 'emptyParameter');748 casper.click('.js-show-more-changelog');749 lib.waitForElementCount('#quality-profile-changelog tbody tr', 3);750 })751 .then(function () {752 test.assertDoesntExist('.js-show-changelog');753 test.assertDoesntExist('.js-show-more-changelog');754 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(3)', 'April 13 2015');755 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(3)', 'System');756 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(3)', 'DEACTIVATED');757 test.assertSelectorContains('#quality-profile-changelog tbody tr:nth-child(3)', 'runFinalizersOnExit');758 })759 .then(function () {760 casper.click('.js-hide-changelog');761 test.assertDoesntExist('#quality-profile-changelog tbody tr');762 });763 });764 it('should open changelog permalink', 2, function (casper, test) {765 return casper766 .start(lib.buildUrl('base#changelog?since=2015-03-25&key=java-sonar-way-67887&to=2015-03-26'), function () {767 lib.setDefaultViewport();768 lib.fmock('/api/users/current', 'user.json');769 lib.fmock('/api/qualityprofiles/search', 'search.json');770 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');771 lib.fmock('/api/languages/list', 'languages.json');772 lib.fmock('/api/rules/search', 'rules.json');773 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');774 lib.fmock('/api/qualityprofiles/changelog', 'changelog2.json', {775 data: {776 p: '2',777 since: '2015-03-25',778 to: '2015-03-26',779 profileKey: 'java-sonar-way-67887'780 }781 });782 lib.fmock('/api/qualityprofiles/changelog', 'changelog.json', {783 data: {784 since: '2015-03-25',785 to: '2015-03-26',786 profileKey: 'java-sonar-way-67887'787 }788 });789 })790 .then(function () {791 casper.evaluate(function () {792 require(['apps/quality-profiles/app'], function (App) {793 App.start({ el: '#content', urlRoot: '/pages/base' });794 });795 });796 })797 .then(function () {798 casper.waitForSelector('.js-show-more-changelog');799 })800 .then(function () {801 test.assertElementCount('#quality-profile-changelog tbody tr', 2);802 casper.click('.js-show-more-changelog');803 lib.waitForElementCount('#quality-profile-changelog tbody tr', 3);804 })805 .then(function () {806 test.assertDoesntExist('.js-show-more-changelog');807 });808 });809 it('should show comparison', 12, function (casper, test) {810 return casper811 .start(lib.buildUrl('base#show?key=java-sonar-way-67887'), function () {812 lib.setDefaultViewport();813 lib.fmock('/api/users/current', 'user.json');814 lib.fmock('/api/qualityprofiles/search', 'search-with-copy.json');815 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');816 lib.fmock('/api/languages/list', 'languages.json');817 lib.fmock('/api/rules/search', 'rules.json');818 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');819 lib.fmock('/api/qualityprofiles/compare', 'compare.json', {820 data: { leftKey: 'java-sonar-way-67887', rightKey: 'java-copied-profile-11711' }821 });822 })823 .then(function () {824 casper.evaluate(function () {825 require(['apps/quality-profiles/app'], function (App) {826 App.start({ el: '#content', urlRoot: '/pages/base' });827 });828 });829 })830 .then(function () {831 casper.waitForSelector('#quality-profile-comparison-form-submit');832 })833 .then(function () {834 test.assertElementCount('#quality-profile-comparison-with-key option', 1);835 casper.click('#quality-profile-comparison-form-submit');836 casper.waitForSelector('#quality-profile-comparison table');837 })838 .then(function () {839 test.assertElementCount('.js-comparison-in-left', 2);840 test.assertElementCount('.js-comparison-in-right', 2);841 test.assertElementCount('.js-comparison-modified', 2);842 test.assertSelectorContains('.js-comparison-in-left', '".equals()" should not be used to test');843 test.assertSelectorContains('.js-comparison-in-left', '"@Override" annotation should be used on');844 test.assertSelectorContains('.js-comparison-in-right', '"ConcurrentLinkedQueue.size()" should not be used');845 test.assertSelectorContains('.js-comparison-in-right', '"compareTo" results should not be checked');846 test.assertSelectorContains('.js-comparison-modified', 'Control flow statements');847 test.assertSelectorContains('.js-comparison-modified', '"Cloneables" should implement "clone"');848 test.assertSelectorContains('.js-comparison-modified', 'max: 5');849 test.assertSelectorContains('.js-comparison-modified', 'max: 3');850 });851 });852 it('should open comparison permalink', 4, function (casper, test) {853 return casper854 .start(lib.buildUrl('base#compare?key=java-sonar-way-67887&withKey=java-copied-profile-11711'),855 function () {856 lib.setDefaultViewport();857 lib.fmock('/api/users/current', 'user.json');858 lib.fmock('/api/qualityprofiles/search', 'search-with-copy.json');859 lib.fmock('/api/qualityprofiles/exporters', 'exporters.json');860 lib.fmock('/api/languages/list', 'languages.json');861 lib.fmock('/api/rules/search', 'rules.json');862 lib.fmock('/api/qualityprofiles/inheritance', 'inheritance.json');863 lib.fmock('/api/qualityprofiles/compare', 'compare.json', {864 data: { leftKey: 'java-sonar-way-67887', rightKey: 'java-copied-profile-11711' }865 });866 })867 .then(function () {868 casper.evaluate(function () {869 require(['apps/quality-profiles/app'], function (App) {870 App.start({ el: '#content', urlRoot: '/pages/base' });...

Full Screen

Full Screen

quality-gates-spec.js

Source:quality-gates-spec.js Github

copy

Full Screen

...3describe('Quality Gates App', function () {4 it('should show list', 5, function (casper, test) {5 return casper6 .start(lib.buildUrl('base'), function () {7 lib.setDefaultViewport();8 lib.fmock('/api/qualitygates/app', 'app.json');9 lib.fmock('/api/qualitygates/list', 'list.json');10 })11 .then(function () {12 casper.evaluate(function () {13 require(['apps/quality-gates/app'], function (App) {14 App.start({ el: '#content', urlRoot: '/pages/base' });15 });16 });17 })18 .then(function () {19 casper.waitForSelector('.js-list .list-group-item');20 })21 .then(function () {22 test.assertElementCount('.js-list .list-group-item', 3);23 test.assertSelectorContains('.js-list .list-group-item', 'SonarQube way');24 test.assertSelectorContains('.js-list .list-group-item', 'Simple Gate');25 test.assertSelectorContains('.js-list .list-group-item', 'Another Gate');26 test.assertElementCount('.js-list .badge', 1);27 });28 });29 it('should show details for anonymous', 14, function (casper, test) {30 return casper31 .start(lib.buildUrl('base'), function () {32 lib.setDefaultViewport();33 lib.fmock('/api/qualitygates/app', 'app-anonymous.json');34 lib.fmock('/api/qualitygates/list', 'list.json');35 lib.fmock('/api/qualitygates/show', 'show.json', { data: { id: '1' } });36 })37 .then(function () {38 casper.evaluate(function () {39 require(['apps/quality-gates/app'], function (App) {40 App.start({ el: '#content', urlRoot: '/pages/base' });41 });42 });43 })44 .then(function () {45 casper.waitForSelector('.js-list .list-group-item');46 })47 .then(function () {48 casper.click('.js-list .list-group-item[data-id="1"]');49 casper.waitForSelector('.search-navigator-header-component');50 })51 .then(function () {52 test.assertElementCount('.js-list .list-group-item.active', 1);53 test.assertSelectorContains('.js-list .list-group-item.active', 'SonarQube way');54 test.assertSelectorContains('.search-navigator-workspace-header', 'SonarQube way');55 test.assertDoesntExist('#quality-gate-rename');56 test.assertDoesntExist('#quality-gate-copy');57 test.assertDoesntExist('#quality-gate-unset-as-default');58 test.assertDoesntExist('#quality-gate-delete');59 test.assertExists('.js-conditions');60 test.assertElementCount('.js-conditions tbody tr', 8);61 test.assertDoesntExist('.js-conditions .update-condition');62 test.assertDoesntExist('.js-conditions .delete-condition');63 test.assertExists('.quality-gate-default-message');64 })65 .then(function () {66 test.assertNotVisible('.js-more');67 casper.click('.js-show-more');68 test.assertVisible('.js-more');69 });70 });71 it('should show details for admin', 12, function (casper, test) {72 return casper73 .start(lib.buildUrl('base'), function () {74 lib.setDefaultViewport();75 lib.fmock('/api/qualitygates/app', 'app.json');76 lib.fmock('/api/qualitygates/list', 'list.json');77 lib.fmock('/api/qualitygates/show', 'show.json', { data: { id: '1' } });78 })79 .then(function () {80 casper.evaluate(function () {81 require(['apps/quality-gates/app'], function (App) {82 App.start({ el: '#content', urlRoot: '/pages/base' });83 });84 });85 })86 .then(function () {87 casper.waitForSelector('.js-list .list-group-item');88 })89 .then(function () {90 casper.click('.js-list .list-group-item[data-id="1"]');91 casper.waitForSelector('.search-navigator-header-component');92 })93 .then(function () {94 test.assertElementCount('.js-list .list-group-item.active', 1);95 test.assertSelectorContains('.js-list .list-group-item.active', 'SonarQube way');96 test.assertSelectorContains('.search-navigator-workspace-header', 'SonarQube way');97 test.assertExists('#quality-gate-rename');98 test.assertExists('#quality-gate-copy');99 test.assertExists('#quality-gate-toggle-default');100 test.assertExists('#quality-gate-delete');101 test.assertExists('.js-conditions');102 test.assertElementCount('.js-conditions tbody tr', 8);103 test.assertElementCount('.js-conditions .update-condition', 8);104 test.assertElementCount('.js-conditions .delete-condition', 8);105 test.assertExists('.quality-gate-default-message');106 });107 });108 it('should show projects', 2, function (casper, test) {109 return casper110 .start(lib.buildUrl('base#show/5'), function () {111 lib.setDefaultViewport();112 lib.fmock('/api/qualitygates/app', 'app-anonymous.json');113 lib.fmock('/api/qualitygates/list', 'list.json');114 lib.fmock('/api/qualitygates/show', 'show-another.json', { data: { id: '5' } });115 lib.fmock('/api/qualitygates/search?gateId=5', 'projects.json');116 })117 .then(function () {118 casper.evaluate(function () {119 require(['apps/quality-gates/app'], function (App) {120 App.start({ el: '#content', urlRoot: '/pages/base' });121 });122 });123 })124 .then(function () {125 casper.waitForSelector('.select-list-list li');126 })127 .then(function () {128 test.assertElementCount('.select-list-list li', 1);129 test.assertSelectorContains('.select-list-list li', 'SonarQube');130 });131 });132 it('should rename', 2, function (casper, test) {133 return casper134 .start(lib.buildUrl('base#show/1'), function () {135 lib.setDefaultViewport();136 lib.fmock('/api/qualitygates/app', 'app.json');137 lib.fmock('/api/qualitygates/list', 'list.json');138 lib.fmock('/api/qualitygates/show', 'show.json', { data: { id: '1' } });139 lib.fmock('/api/qualitygates/rename', 'rename.json', { data: { id: '1', name: 'New Name' } });140 })141 .then(function () {142 casper.evaluate(function () {143 require(['apps/quality-gates/app'], function (App) {144 App.start({ el: '#content', urlRoot: '/pages/base' });145 });146 jQuery.ajaxSetup({ dataType: 'json' });147 });148 })149 .then(function () {150 casper.waitForSelector('.search-navigator-header-component');151 })152 .then(function () {153 casper.click('#quality-gate-rename');154 casper.waitUntilVisible('#quality-gate-form-name');155 })156 .then(function () {157 casper.evaluate(function () {158 jQuery('#quality-gate-form-name').val('New Name');159 });160 casper.click('.modal-foot button');161 casper.waitForSelectorTextChange('.search-navigator-header-component');162 })163 .then(function () {164 test.assertSelectorContains('.search-navigator-header-component', 'New Name');165 test.assertSelectorContains('.js-list .list-group-item.active', 'New Name');166 });167 });168 it('should copy', 3, function (casper, test) {169 return casper170 .start(lib.buildUrl('base#show/1'), function () {171 lib.setDefaultViewport();172 lib.fmock('/api/qualitygates/app', 'app.json');173 lib.fmock('/api/qualitygates/list', 'list.json');174 lib.fmock('/api/qualitygates/show', 'show.json', { data: { id: '1' } });175 lib.fmock('/api/qualitygates/show', 'show-created.json', { data: { id: '6' } });176 lib.fmock('/api/qualitygates/copy', 'copy.json', { data: { id: '1', name: 'New Name' } });177 })178 .then(function () {179 casper.evaluate(function () {180 require(['apps/quality-gates/app'], function (App) {181 App.start({ el: '#content', urlRoot: '/pages/base' });182 });183 jQuery.ajaxSetup({ dataType: 'json' });184 });185 })186 .then(function () {187 casper.waitForSelector('.search-navigator-header-component');188 })189 .then(function () {190 casper.click('#quality-gate-copy');191 casper.waitUntilVisible('#quality-gate-form-name');192 })193 .then(function () {194 casper.evaluate(function () {195 jQuery('#quality-gate-form-name').val('New Name');196 });197 casper.click('.modal-foot button');198 casper.waitForSelectorTextChange('.search-navigator-header-component');199 })200 .then(function () {201 test.assertSelectorContains('.search-navigator-header-component', 'New Name');202 test.assertSelectorContains('.js-list .list-group-item.active', 'New Name');203 test.assertSelectorContains('.js-list .list-group-item', 'SonarQube way');204 });205 });206 it('should set as default', 4, function (casper, test) {207 return casper208 .start(lib.buildUrl('base#show/5'), function () {209 lib.setDefaultViewport();210 lib.fmock('/api/qualitygates/app', 'app.json');211 lib.fmock('/api/qualitygates/list', 'list.json');212 lib.fmock('/api/qualitygates/show', 'show-another.json', { data: { id: '5' } });213 lib.smock('/api/qualitygates/set_as_default', '{}', { data: { id: '5' } });214 })215 .then(function () {216 casper.evaluate(function () {217 require(['apps/quality-gates/app'], function (App) {218 App.start({ el: '#content', urlRoot: '/pages/base' });219 });220 jQuery.ajaxSetup({ dataType: 'json' });221 });222 })223 .then(function () {224 casper.waitForSelector('.search-navigator-header-component');225 })226 .then(function () {227 test.assertDoesntExist('.js-list .list-group-item.active .badge');228 test.assertDoesntExist('.quality-gate-default-message');229 casper.click('#quality-gate-toggle-default');230 casper.waitForSelector('.js-list .list-group-item.active .badge');231 })232 .then(function () {233 test.assertExists('.quality-gate-default-message');234 test.assertElementCount('.js-list .badge', 1);235 });236 });237 it('should unset as default', 4, function (casper, test) {238 return casper239 .start(lib.buildUrl('base#show/1'), function () {240 lib.setDefaultViewport();241 lib.fmock('/api/qualitygates/app', 'app.json');242 lib.fmock('/api/qualitygates/list', 'list.json');243 lib.fmock('/api/qualitygates/show', 'show.json', { data: { id: '1' } });244 lib.smock('/api/qualitygates/unset_default', '{}', { data: { id: '1' } });245 })246 .then(function () {247 casper.evaluate(function () {248 require(['apps/quality-gates/app'], function (App) {249 App.start({ el: '#content', urlRoot: '/pages/base' });250 });251 jQuery.ajaxSetup({ dataType: 'json' });252 });253 })254 .then(function () {255 casper.waitForSelector('.search-navigator-header-component');256 })257 .then(function () {258 test.assertExists('.js-list .list-group-item.active .badge');259 test.assertExists('.quality-gate-default-message');260 casper.click('#quality-gate-toggle-default');261 casper.waitWhileSelector('.js-list .list-group-item.active .badge');262 })263 .then(function () {264 test.assertDoesntExist('.quality-gate-default-message');265 test.assertDoesntExist('.js-list .badge');266 });267 });268 it('should create', 2, function (casper, test) {269 return casper270 .start(lib.buildUrl('base'), function () {271 lib.setDefaultViewport();272 lib.fmock('/api/qualitygates/app', 'app.json');273 lib.fmock('/api/qualitygates/list', 'list.json');274 lib.smock('/api/qualitygates/create', '{"errors":[{"msg": "error"}]}',275 { status: 400, data: { name: 'Bad' } });276 lib.fmock('/api/qualitygates/create', 'create.json', { data: { name: 'New Name' } });277 lib.fmock('/api/qualitygates/show', 'show-created.json', { data: { id: '6' } });278 })279 .then(function () {280 casper.evaluate(function () {281 require(['apps/quality-gates/app'], function (App) {282 App.start({ el: '#content', urlRoot: '/pages/base' });283 });284 jQuery.ajaxSetup({ dataType: 'json' });285 });286 })287 .then(function () {288 casper.waitForSelector('.js-list .list-group-item');289 })290 .then(function () {291 casper.click('#quality-gate-add');292 casper.waitUntilVisible('#quality-gate-form-name');293 })294 .then(function () {295 casper.evaluate(function () {296 jQuery('#quality-gate-form-name').val('Bad');297 });298 casper.click('.modal-foot button');299 casper.waitForSelector('.alert-danger');300 })301 .then(function () {302 casper.evaluate(function () {303 jQuery('#quality-gate-form-name').val('New Name');304 });305 casper.click('.modal-foot button');306 casper.waitForSelector('.search-navigator-header-component');307 })308 .then(function () {309 test.assertSelectorContains('.search-navigator-header-component', 'New Name');310 test.assertSelectorContains('.js-list .list-group-item.active', 'New Name');311 });312 });313 it('should delete', 2, function (casper, test) {314 return casper315 .start(lib.buildUrl('base#show/5'), function () {316 lib.setDefaultViewport();317 lib.fmock('/api/qualitygates/app', 'app.json');318 lib.fmock('/api/qualitygates/list', 'list.json');319 lib.fmock('/api/qualitygates/show', 'show-another.json', { data: { id: '5' } });320 this.deleteMock = lib.smock('/api/qualitygates/destroy', '{"errors":[{"msg": "error"}]}',321 { status: 400 });322 })323 .then(function () {324 casper.evaluate(function () {325 require(['apps/quality-gates/app'], function (App) {326 App.start({ el: '#content', urlRoot: '/pages/base' });327 });328 jQuery.ajaxSetup({ dataType: 'json' });329 });330 })331 .then(function () {332 casper.waitForSelector('.search-navigator-header-component');333 })334 .then(function () {335 test.assertElementCount('.js-list .list-group-item', 3);336 casper.click('#quality-gate-delete');337 casper.waitForSelector('#delete-gate-submit');338 })339 .then(function () {340 casper.click('#delete-gate-submit');341 casper.waitForSelector('.alert-danger');342 })343 .then(function () {344 lib.clearRequestMock(this.deleteMock);345 lib.smock('/api/qualitygates/destroy', '{}', { data: { id: '5' } });346 casper.click('#delete-gate-submit');347 casper.waitWhileSelector('.search-navigator-header-component');348 })349 .then(function () {350 test.assertElementCount('.js-list .list-group-item', 2);351 });352 });353 it('should add condition', 6, function (casper, test) {354 return casper355 .start(lib.buildUrl('base#show/5'), function () {356 lib.setDefaultViewport();357 lib.fmock('/api/qualitygates/app', 'app.json');358 lib.fmock('/api/qualitygates/list', 'list.json');359 lib.fmock('/api/qualitygates/show', 'show-another.json', { data: { id: '5' } });360 lib.fmock('/api/qualitygates/create_condition', 'create-condition.json',361 { data: { gateId: '5', metric: 'complexity', op: 'GT', period: '1', warning: '3', error: '4' } });362 })363 .then(function () {364 casper.evaluate(function () {365 require(['apps/quality-gates/app'], function (App) {366 App.start({ el: '#content', urlRoot: '/pages/base' });367 });368 jQuery.ajaxSetup({ dataType: 'json' });369 });370 })371 .then(function () {372 casper.waitForSelector('.search-navigator-header-component');373 })374 .then(function () {375 test.assertElementCount('.js-conditions [name="error"]', 0);376 casper.evaluate(function () {377 jQuery('#quality-gate-new-condition-metric').val('complexity').change();378 });379 test.assertElementCount('.js-conditions [name="error"]', 1);380 })381 .then(function () {382 casper.click('.cancel-add-condition');383 casper.waitWhileSelector('.cancel-add-condition');384 })385 .then(function () {386 test.assertElementCount('.js-conditions [name="error"]', 0);387 casper.evaluate(function () {388 jQuery('#quality-gate-new-condition-metric').val('complexity').change();389 });390 test.assertElementCount('.js-conditions [name="error"]', 1);391 casper.evaluate(function () {392 jQuery('[name="period"]').val('1');393 jQuery('[name="operator"]').val('GT');394 jQuery('[name="warning"]').val('3');395 jQuery('[name="error"]').val('4');396 });397 casper.click('.add-condition');398 casper.waitForSelector('.update-condition');399 })400 .then(function () {401 test.assertExists('.update-condition[disabled]');402 test.assertExists('.delete-condition');403 });404 });405 it('should update condition', 3, function (casper, test) {406 return casper407 .start(lib.buildUrl('base#show/1'), function () {408 lib.setDefaultViewport();409 lib.fmock('/api/qualitygates/app', 'app.json');410 lib.fmock('/api/qualitygates/list', 'list.json');411 lib.fmock('/api/qualitygates/show', 'show.json', { data: { id: '1' } });412 lib.fmock('/api/qualitygates/update_condition', 'update-condition.json',413 { data: { id: '1', warning: '173' } });414 })415 .then(function () {416 casper.evaluate(function () {417 require(['apps/quality-gates/app'], function (App) {418 App.start({ el: '#content', urlRoot: '/pages/base' });419 });420 jQuery.ajaxSetup({ dataType: 'json' });421 });422 })423 .then(function () {424 casper.waitForSelector('.update-condition');425 })426 .then(function () {427 test.assertExists('.js-conditions tr:first-child .update-condition[disabled]');428 casper.evaluate(function () {429 jQuery('.js-conditions tr:first-child [name="warning"]').val('173').change();430 });431 test.assertDoesntExist('.js-conditions tr:first-child .update-condition[disabled]');432 casper.click('.js-conditions tr:first-child .update-condition');433 casper.waitWhileSelector('.js-conditions tr:first-child .update-condition:not([disabled])');434 })435 .then(function () {436 test.assertExists('.js-conditions tr:first-child .update-condition[disabled]');437 });438 });439 it('should delete condition', 1, function (casper, test) {440 return casper441 .start(lib.buildUrl('base#show/1'), function () {442 lib.setDefaultViewport();443 lib.fmock('/api/qualitygates/app', 'app.json');444 lib.fmock('/api/qualitygates/list', 'list.json');445 lib.fmock('/api/qualitygates/show', 'show.json', { data: { id: '1' } });446 this.deleteMock = lib.smock('/api/qualitygates/delete_condition', '{"errors":[{"msg": "error"}]}',447 { status: 400 });448 })449 .then(function () {450 casper.evaluate(function () {451 require(['apps/quality-gates/app'], function (App) {452 App.start({ el: '#content', urlRoot: '/pages/base' });453 });454 jQuery.ajaxSetup({ dataType: 'json' });455 });456 })...

Full Screen

Full Screen

update-center-spec.js

Source:update-center-spec.js Github

copy

Full Screen

...3describe('Update Center App', function () {4 it('should show plugin card', 16, function (casper, test) {5 return casper6 .start(lib.buildUrl('base#installed'), function () {7 lib.setDefaultViewport();8 lib.fmock('/api/plugins/installed', 'installed.json');9 lib.fmock('/api/plugins/updates', 'updates.json');10 lib.fmock('/api/plugins/pending', 'pending.json');11 })12 .then(function () {13 casper.evaluate(function () {14 require(['apps/update-center/app'], function (App) {15 App.start({ el: '#content', urlRoot: '/pages/base' });16 });17 });18 })19 .then(function () {20 casper.waitForSelector('.js-plugin-name');21 })22 .then(function () {23 test.assertElementCount('li[data-id]', 5);24 test.assertSelectorContains('li[data-id="scmgit"] .js-plugin-name', 'Git');25 test.assertSelectorContains('li[data-id="scmgit"] .js-plugin-category', 'Integration');26 test.assertSelectorContains('li[data-id="scmgit"] .js-plugin-description', 'Git SCM Provider.');27 test.assertSelectorContains('li[data-id="scmgit"] .js-plugin-installed-version', '1.0');28 test.assertElementCount('li[data-id="scmgit"] .js-update-version', 1);29 test.assertSelectorContains('li[data-id="scmgit"] .js-update-version', '1.1');30 test.assertElementCount('li[data-id="scmgit"] .js-changelog', 1);31 test.assertElementCount('li[data-id="scmgit"] .js-plugin-homepage', 1);32 test.assertElementCount('li[data-id="scmgit"] .js-plugin-issues', 1);33 test.assertDoesntExist('li[data-id="scmgit"] .js-plugin-terms');34 test.assertSelectorContains('li[data-id="scmgit"] .js-plugin-license', 'GNU LGPL 3');35 test.assertSelectorContains('li[data-id="scmgit"] .js-plugin-organization', 'SonarSource');36 test.assertElementCount('li[data-id="scmgit"] .js-update', 1);37 test.assertElementCount('li[data-id="scmgit"] .js-uninstall', 1);38 test.assertDoesntExist('li[data-id="scmgit"] .js-install');39 });40 });41 it('should show system update', 8, function (casper, test) {42 return casper43 .start(lib.buildUrl('base#updates'), function () {44 lib.setDefaultViewport();45 lib.fmock('/api/plugins/installed', 'installed.json');46 lib.fmock('/api/plugins/updates', 'updates.json');47 lib.fmock('/api/plugins/pending', 'pending.json');48 lib.fmock('/api/system/upgrades', 'system-updates.json');49 })50 .then(function () {51 casper.evaluate(function () {52 require(['apps/update-center/app'], function (App) {53 App.start({ el: '#content', urlRoot: '/pages/base' });54 });55 });56 })57 .then(function () {58 casper.waitForSelector('.js-plugin-name');59 })60 .then(function () {61 test.assertElementCount('li[data-system]', 1);62 test.assertSelectorContains('li[data-system] .js-plugin-name', 'SonarQube 5.3');63 test.assertSelectorContains('li[data-system] .js-plugin-category', 'System Update');64 test.assertSelectorContains('li[data-system] .js-plugin-description', 'New!');65 test.assertElementCount('li[data-system] .js-plugin-release-notes', 1);66 test.assertElementCount('li[data-system] .js-plugin-date', 1);67 test.assertElementCount('li[data-system] .js-plugin-update-steps', 1);68 test.assertElementCount('li[data-system] .js-plugin-update-steps > li', 4);69 });70 });71 it('should show installed', 3, function (casper, test) {72 return casper73 .start(lib.buildUrl('base#installed'), function () {74 lib.setDefaultViewport();75 lib.fmock('/api/plugins/installed', 'installed.json');76 lib.fmock('/api/plugins/updates', 'updates.json');77 lib.fmock('/api/plugins/pending', 'pending.json');78 })79 .then(function () {80 casper.evaluate(function () {81 require(['apps/update-center/app'], function (App) {82 App.start({ el: '#content', urlRoot: '/pages/base' });83 });84 });85 })86 .then(function () {87 casper.waitForSelector('.js-plugin-name');88 })89 .then(function () {90 test.assertElementCount('li[data-id]', 5);91 test.assertExists('li[data-id="scmgit"]');92 test.assertExists('li[data-id="javascript"]');93 });94 });95 it('should show updates', 3, function (casper, test) {96 return casper97 .start(lib.buildUrl('base#updates'), function () {98 lib.setDefaultViewport();99 lib.fmock('/api/plugins/installed', 'installed.json');100 lib.fmock('/api/plugins/updates', 'updates.json');101 lib.fmock('/api/plugins/pending', 'pending.json');102 lib.fmock('/api/system/upgrades', 'system-updates.json');103 })104 .then(function () {105 casper.evaluate(function () {106 require(['apps/update-center/app'], function (App) {107 App.start({ el: '#content', urlRoot: '/pages/base' });108 });109 });110 })111 .then(function () {112 casper.waitForSelector('.js-plugin-name');113 })114 .then(function () {115 test.assertElementCount('li[data-id]', 4);116 test.assertExists('li[data-id="scmgit"]');117 test.assertDoesntExist('li[data-id="javascript"]');118 });119 });120 it('should show available', 3, function (casper, test) {121 return casper122 .start(lib.buildUrl('base#available'), function () {123 lib.setDefaultViewport();124 lib.fmock('/api/plugins/available', 'available.json');125 lib.fmock('/api/plugins/pending', 'pending.json');126 })127 .then(function () {128 casper.evaluate(function () {129 require(['apps/update-center/app'], function (App) {130 App.start({ el: '#content', urlRoot: '/pages/base' });131 });132 });133 })134 .then(function () {135 casper.waitForSelector('.js-plugin-name');136 })137 .then(function () {138 test.assertElementCount('li[data-id]', 3);139 test.assertDoesntExist('li[data-id="scmgit"]');140 test.assertExists('li[data-id="abap"]');141 });142 });143 it('should switch between views', 18, function (casper, test) {144 return casper145 .start(lib.buildUrl('base#installed'), function () {146 lib.setDefaultViewport();147 lib.fmock('/api/plugins/installed', 'installed.json');148 lib.fmock('/api/plugins/updates', 'updates.json');149 lib.fmock('/api/plugins/pending', 'pending.json');150 lib.fmock('/api/plugins/available', 'available.json');151 lib.fmock('/api/system/upgrades', 'system-updates.json');152 })153 .then(function () {154 casper.evaluate(function () {155 require(['apps/update-center/app'], function (App) {156 App.start({ el: '#content', urlRoot: '/pages/base' });157 });158 });159 })160 .then(function () {161 casper.waitForSelector('.js-plugin-name');162 })163 .then(function () {164 test.assertElementCount('li[data-id]', 5);165 test.assertExists('li[data-id="javascript"]');166 test.assertExists('#update-center-filter-installed:checked');167 casper.click('#update-center-filter-available');168 casper.waitForSelector('li[data-id="abap"]');169 })170 .then(function () {171 test.assertElementCount('li[data-id]', 3);172 test.assertExists('li[data-id="abap"]');173 test.assertExists('#update-center-filter-available:checked');174 casper.click('#update-center-filter-updates');175 casper.waitForSelector('li[data-id="scmgit"]');176 })177 .then(function () {178 test.assertElementCount('li[data-id]', 4);179 test.assertExists('li[data-id="scmgit"]');180 test.assertExists('#update-center-filter-updates:checked');181 casper.click('#update-center-filter-installed');182 casper.waitForSelector('li[data-id="javascript"]');183 })184 .then(function () {185 test.assertElementCount('li[data-id]', 5);186 test.assertExists('li[data-id="javascript"]');187 test.assertExists('#update-center-filter-installed:checked');188 casper.click('#update-center-filter-available');189 casper.waitForSelector('li[data-id="abap"]');190 })191 .then(function () {192 test.assertElementCount('li[data-id]', 3);193 test.assertExists('li[data-id="abap"]');194 test.assertExists('#update-center-filter-available:checked');195 casper.click('#update-center-filter-updates');196 casper.waitForSelector('li[data-id="scmgit"]');197 })198 .then(function () {199 test.assertElementCount('li[data-id]', 4);200 test.assertExists('li[data-id="scmgit"]');201 test.assertExists('#update-center-filter-updates:checked');202 });203 });204 it('should search', 5, function (casper, test) {205 return casper206 .start(lib.buildUrl('base#installed'), function () {207 lib.setDefaultViewport();208 lib.fmock('/api/plugins/installed', 'installed.json');209 lib.fmock('/api/plugins/updates', 'updates.json');210 lib.fmock('/api/plugins/pending', 'pending.json');211 })212 .then(function () {213 casper.evaluate(function () {214 require(['apps/update-center/app'], function (App) {215 App.start({ el: '#content', urlRoot: '/pages/base' });216 });217 });218 })219 .then(function () {220 casper.waitForSelector('.js-plugin-name');221 })222 .then(function () {223 test.assertElementCount('li[data-id]', 5);224 test.assertDoesntExist('li.hidden[data-id]');225 casper.evaluate(function () {226 jQuery('#update-center-search-query').val('jA');227 });228 casper.click('#update-center-search-submit');229 casper.waitForSelector('li.hidden[data-id]');230 })231 .then(function () {232 test.assertElementCount('li[data-id]', 5);233 test.assertElementCount('li.hidden[data-id]', 3);234 test.assertSelectorContains('li:not(.hidden)[data-id] .js-plugin-name', 'JavaScript');235 });236 });237 it('should show plugin changelog', 4, function (casper, test) {238 return casper239 .start(lib.buildUrl('base#installed'), function () {240 lib.setDefaultViewport();241 lib.fmock('/api/plugins/installed', 'installed.json');242 lib.fmock('/api/plugins/updates', 'updates.json');243 lib.fmock('/api/plugins/pending', 'pending.json');244 })245 .then(function () {246 casper.evaluate(function () {247 require(['apps/update-center/app'], function (App) {248 App.start({ el: '#content', urlRoot: '/pages/base' });249 });250 });251 })252 .then(function () {253 casper.waitForSelector('.js-plugin-name');254 })255 .then(function () {256 casper.click('li[data-id="python"] .js-changelog');257 casper.waitForSelector('.bubble-popup');258 })259 .then(function () {260 test.assertElementCount('.bubble-popup .js-plugin-changelog-version', 2);261 test.assertElementCount('.bubble-popup .js-plugin-changelog-date', 2);262 test.assertElementCount('.bubble-popup .js-plugin-changelog-link', 2);263 test.assertElementCount('.bubble-popup .js-plugin-changelog-description', 2);264 });265 });266 it('should update plugin', 1, function (casper, test) {267 return casper268 .start(lib.buildUrl('base'), function () {269 lib.setDefaultViewport();270 lib.fmock('/api/plugins/installed', 'installed.json');271 lib.fmock('/api/plugins/updates', 'updates.json');272 lib.fmock('/api/plugins/pending', 'pending.json');273 lib.smock('/api/plugins/update', '{}', { data: { key: 'scmgit' } });274 })275 .then(function () {276 casper.evaluate(function () {277 require(['apps/update-center/app'], function (App) {278 App.start({ el: '#content', urlRoot: '/pages/base' });279 });280 });281 })282 .then(function () {283 casper.waitForSelector('.js-plugin-name');284 })285 .then(function () {286 casper.click('li[data-id="scmgit"] .js-update');287 casper.waitWhileSelector('li[data-id="scmgit"] .js-spinner');288 })289 .then(function () {290 test.assertSelectorContains('li[data-id="scmgit"]', 'To Be Installed');291 });292 });293 it('should uninstall plugin', 1, function (casper, test) {294 return casper295 .start(lib.buildUrl('base'), function () {296 lib.setDefaultViewport();297 lib.fmock('/api/plugins/installed', 'installed.json');298 lib.fmock('/api/plugins/updates', 'updates.json');299 lib.fmock('/api/plugins/pending', 'pending.json');300 lib.smock('/api/plugins/uninstall', '{}', { data: { key: 'scmgit' } });301 })302 .then(function () {303 casper.evaluate(function () {304 require(['apps/update-center/app'], function (App) {305 App.start({ el: '#content', urlRoot: '/pages/base' });306 });307 });308 })309 .then(function () {310 casper.waitForSelector('.js-plugin-name');311 })312 .then(function () {313 casper.click('li[data-id="scmgit"] .js-uninstall');314 casper.waitWhileSelector('li[data-id="scmgit"] .js-spinner');315 })316 .then(function () {317 test.assertSelectorContains('li[data-id="scmgit"]', 'To Be Uninstalled');318 });319 });320 it('should install plugin', 1, function (casper, test) {321 return casper322 .start(lib.buildUrl('base#available'), function () {323 lib.setDefaultViewport();324 lib.fmock('/api/plugins/available', 'available.json');325 lib.fmock('/api/plugins/pending', 'pending.json');326 lib.smock('/api/plugins/install', '{}', { data: { key: 'abap' } });327 })328 .then(function () {329 casper.evaluate(function () {330 require(['apps/update-center/app'], function (App) {331 App.start({ el: '#content', urlRoot: '/pages/base' });332 });333 });334 })335 .then(function () {336 casper.waitForSelector('.js-plugin-name');337 })338 .then(function () {339 casper.click('li[data-id="abap"] .js-install');340 casper.waitWhileSelector('li[data-id="abap"] .js-spinner');341 })342 .then(function () {343 test.assertSelectorContains('li[data-id="abap"]', 'To Be Installed');344 });345 });346 it('should cancel all pending', 1, function (casper, test) {347 return casper348 .start(lib.buildUrl('base#available'), function () {349 lib.setDefaultViewport();350 lib.fmock('/api/plugins/available', 'available.json');351 lib.fmock('/api/plugins/pending', 'pending.json');352 lib.smock('/api/plugins/cancel_all', '{}');353 })354 .then(function () {355 casper.evaluate(function () {356 require(['apps/update-center/app'], function (App) {357 App.start({ el: '#content', urlRoot: '/pages/base' });358 });359 });360 })361 .then(function () {362 casper.waitForSelector('.js-plugin-name');363 })...

Full Screen

Full Screen

Target.js

Source:Target.js Github

copy

Full Screen

1const Page = require('./Page');2const {helper} = require('./helper');3class Target {4 /**5 * @param {!Puppeteer.TargetInfo} targetInfo6 * @param {!Puppeteer.Browser} browser7 * @param {!function():!Promise<!Puppeteer.CDPSession>} sessionFactory8 * @param {boolean} ignoreHTTPSErrors9 * @param {boolean} setDefaultViewport10 * @param {!Puppeteer.TaskQueue} screenshotTaskQueue11 */12 constructor(targetInfo, browser, sessionFactory, ignoreHTTPSErrors, setDefaultViewport, screenshotTaskQueue) {13 this._targetInfo = targetInfo;14 this._browser = browser;15 this._targetId = targetInfo.targetId;16 this._sessionFactory = sessionFactory;17 this._ignoreHTTPSErrors = ignoreHTTPSErrors;18 this._setDefaultViewport = setDefaultViewport;19 this._screenshotTaskQueue = screenshotTaskQueue;20 /** @type {?Promise<!Puppeteer.Page>} */21 this._pagePromise = null;22 this._initializedPromise = new Promise(fulfill => this._initializedCallback = fulfill);23 this._isClosedPromise = new Promise(fulfill => this._closedCallback = fulfill);24 this._isInitialized = this._targetInfo.type !== 'page' || this._targetInfo.url !== '';25 if (this._isInitialized)26 this._initializedCallback(true);27 }28 /**29 * @return {!Promise<!Puppeteer.CDPSession>}30 */31 createCDPSession() {32 return this._sessionFactory();33 }34 /**35 * @return {!Promise<?Page>}36 */37 async page() {38 if (this._targetInfo.type === 'page' && !this._pagePromise) {39 this._pagePromise = this._sessionFactory()40 .then(client => Page.create(client, this, this._ignoreHTTPSErrors, this._setDefaultViewport, this._screenshotTaskQueue));41 }42 return this._pagePromise;43 }44 /**45 * @return {string}46 */47 url() {48 return this._targetInfo.url;49 }50 /**51 * @return {"page"|"service_worker"|"other"|"browser"}52 */53 type() {54 const type = this._targetInfo.type;55 if (type === 'page' || type === 'service_worker' || type === 'browser')56 return type;57 return 'other';58 }59 /**60 * @return {!Puppeteer.Browser}61 */62 browser() {63 return this._browser;64 }65 /**66 * @param {!Puppeteer.TargetInfo} targetInfo67 */68 _targetInfoChanged(targetInfo) {69 this._targetInfo = targetInfo;70 if (!this._isInitialized && (this._targetInfo.type !== 'page' || this._targetInfo.url !== '')) {71 this._isInitialized = true;72 this._initializedCallback(true);73 return;74 }75 }76}77helper.tracePublicAPI(Target);...

Full Screen

Full Screen

DeckGLMap.js

Source:DeckGLMap.js Github

copy

Full Screen

...24 // bounds && setBounds(bounds);25 // }, [bounds, setBounds]);26 // update default viewport on set27 useEffect(() => {28 initialViewport && setDefaultViewport(initialViewport);29 }, [initialViewport, setDefaultViewport]);30 // update the viewport in state on change31 const handleViewportChange = (e) => {32 return setViewport(e.viewState);33 };34 return (35 <DeckGL36 ref={ref}37 viewState={viewport}38 onViewStateChange={handleViewportChange}39 controller={true}40 {...props}41 >42 {children}...

Full Screen

Full Screen

index.js

Source:index.js Github

copy

Full Screen

1import { Transform } from './transform.js';2import calculateTransform from './calculateTransform.js';3import drawImage from './drawImage.js';4import generateLut from './generateLut.js';5import getDefaultViewport from './getDefaultViewport.js';6import getTransform from './getTransform.js';7import requestAnimationFrame from './requestAnimationFrame.js';8import setDefaultViewport from './setDefaultViewport.js';9import storedColorPixelDataToCanvasImageData from './storedColorPixelDataToCanvasImageData.js';10import storedPixelDataToCanvasImageData from './storedPixelDataToCanvasImageData.js';11import storedPixelDataToCanvasImageDataColorLUT from './storedPixelDataToCanvasImageDataColorLUT.js';12import storedPixelDataToCanvasImageDataPseudocolorLUT from './storedPixelDataToCanvasImageDataPseudocolorLUT.js';13import storedPixelDataToCanvasImageDataRGBA from './storedPixelDataToCanvasImageDataRGBA.js';14/**15 * @module Internal16 */17export default {18 drawImage,19 generateLut,20 getDefaultViewport,21 requestAnimationFrame,22 setDefaultViewport,23 storedPixelDataToCanvasImageData,24 storedPixelDataToCanvasImageDataRGBA,25 storedPixelDataToCanvasImageDataColorLUT,26 storedPixelDataToCanvasImageDataPseudocolorLUT,27 storedColorPixelDataToCanvasImageData,28 getTransform,29 calculateTransform,30 Transform...

Full Screen

Full Screen

setDefaultViewport_test.js

Source:setDefaultViewport_test.js Github

copy

Full Screen

...5 beforeEach(function () {6 state.viewport = {};7 });8 it('should default to an empty object if no value is provided', function () {9 setDefaultViewport();10 const currentDefaultViewport = state.viewport;11 const expectedDefaultViewport = {};12 expect(currentDefaultViewport).to.deep.equal(expectedDefaultViewport);13 });14 it('should equal the value of the provided object', function () {15 const exampleViewportDefaults = {16 pixelReplication: true,17 someOtherProperty: 'hello'18 };19 setDefaultViewport(exampleViewportDefaults);20 const currentDefaultViewport = state.viewport;21 const expectedDefaultViewport = exampleViewportDefaults;22 expect(currentDefaultViewport).to.deep.equal(expectedDefaultViewport);23 });...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const playwright = require('playwright');2(async () => {3 for (const browserType of ['chromium', 'firefox', 'webkit']) {4 const browser = await playwright[browserType].launch();5 const context = await browser.newContext();6 await context.setDefaultViewport({width: 500, height: 500});7 const page = await context.newPage();8 await page.screenshot({ path: `example-${browserType}.png` });9 await browser.close();10 }11})();12- `setExtraHTTPHeaders(headers)`13const playwright = require('playwright');14(async () => {15 const browser = await playwright.chromium.launch();16 const context = await browser.newContext();17 await context.setExtraHTTPHeaders({18 });19 const page = await context.newPage();20 await page.screenshot({ path: `example.png` });21 await browser.close();22})();23- `setGeolocation(options)`24const playwright = require('playwright');25(async () => {26 const browser = await playwright.chromium.launch();27 const context = await browser.newContext();28 await context.setGeolocation({ longitude: 12.492507, latitude: 41.889938 });29 const page = await context.newPage();

Full Screen

Using AI Code Generation

copy

Full Screen

1const playwright = require('playwright');2(async () => {3 for (const browserType of BROWSER) {4 const browser = await playwright[browserType].launch({headless: false});5 const context = await browser.newContext();6 await context.setDefaultViewport({ width: 1920, height: 1080 });7 const page = await context.newPage();8 await page.screenshot({ path: `example-${browserType}.png` });9 await browser.close();10 }11})();12const playwright = require('playwright');13(async () => {14 for (const browserType of BROWSER) {15 const browser = await playwright[browserType].launch({headless: false});16 const context = await browser.newContext();17 const page = await context.newPage();18 await page.setViewportSize({ width: 1920, height: 1080 });19 await page.screenshot({ path: `example-${browserType}.png` });20 await browser.close();21 }22})();23const playwright = require('playwright');24(async () => {25 for (const browserType of BROWSER) {26 const browser = await playwright[browserType].launch({headless: false});27 const context = await browser.newContext();28 const page = await context.newPage();29 await page.emulate({ viewport: { width: 1920, height: 1080 }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36' });30 await page.screenshot({ path: `example-${browserType}.png` });31 await browser.close();32 }33})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext({ viewport: null });5 const page = await context.newPage();6 await page.screenshot({ path: 'example.png' });7 await browser.close();8})();9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch();12 const context = await browser.newContext({ viewport: { width: 1280, height: 720 } });13 const page = await context.newPage();14 await page.screenshot({ path: 'example.png' });15 await browser.close();16})();17const { chromium } = require('playwright');18(async () => {19 const browser = await chromium.launch();20 const context = await browser.newContext({ viewport: null });21 const page = await context.newPage();22 await page.screenshot({ path: 'example.png' });23 await browser.close();24})();25const { chromium } = require('playwright');26(async () => {27 const browser = await chromium.launch();28 const context = await browser.newContext({ viewport: { width: 1280, height: 720 } });29 const page = await context.newPage();30 await page.screenshot({ path: 'example.png' });31 await browser.close();32})();33const { chromium } = require('playwright');34(async () => {35 const browser = await chromium.launch();36 const context = await browser.newContext({ viewport: null });37 const page = await context.newPage();38 await page.screenshot({ path: 'example.png' });39 await browser.close();40})();41const { chromium } =

Full Screen

Using AI Code Generation

copy

Full Screen

1const playwright = require('playwright');2(async () => {3 const browser = await playwright.chromium.launch();4 const context = await browser.newContext({ viewport: null });5 const page = await context.newPage();6 await page.screenshot({ path: 'example.png' });7 await browser.close();8})();9const playwright = require('playwright');10(async () => {11 const browser = await playwright.chromium.launch();12 const context = await browser.newContext({ deviceScaleFactor: 2 });13 const page = await context.newPage();14 await page.screenshot({ path: 'example.png' });15 await browser.close();16})();17const playwright = require('playwright');18(async () => {19 const browser = await playwright.chromium.launch();20 const context = await browser.newContext({ isMobile: true });21 const page = await context.newPage();22 await page.screenshot({ path: 'example.png' });23 await browser.close();24})();25const playwright = require('playwright');26(async () => {27 const browser = await playwright.chromium.launch();28 const context = await browser.newContext({ hasTouch: true });29 const page = await context.newPage();30 await page.goto('https

Full Screen

Using AI Code Generation

copy

Full Screen

1const playwright = require('playwright');2(async () => {3 const browser = await playwright.chromium.launch();4 const context = await browser.newContext({5 viewport: {6 },7 });8 const page = await context.newPage();9 await browser.close();10})();11const playwright = require('playwright');12(async () => {13 const browser = await playwright.chromium.launch();14 const context = await browser.newContext({15 viewport: {16 },17 });18 const page = await context.newPage();19 await browser.close();20})();21const playwright = require('playwright');22test.use({23 viewport: {24 },25});26test('test', async ({ page }) => {27});28const playwright = require('playwright');29(async () => {30 const browser = await playwright.chromium.launch();31 const context = await browser.launchPersistentContext('data-path', {32 viewport: {33 },34 });35 const page = await context.newPage();36 await browser.close();37})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({headless: false});4 const page = await browser.newPage({viewport: null});5 await page.screenshot({ path: 'example.png' });6 await browser.close();7})();8const { chromium } = require('playwright');9(async () => {10 const browser = await chromium.launch({headless: false});11 const page = await browser.newPage({viewport: null});12 await page.setViewportSize({width: 500, height: 500});13 await page.screenshot({ path: 'example.png' });14 await browser.close();15})();16const { chromium } = require('playwright');17(async () => {18 const browser = await chromium.launch({headless: false});19 const page = await browser.newPage({viewport: null});20 await page.emulate({viewport: {width: 500, height: 500}});21 await page.screenshot({ path: 'example.png' });22 await browser.close();23})();24const { chromium } = require('playwright');25(async () => {26 const browser = await chromium.launch({headless: false});27 const page = await browser.newPage({viewport: null});28 await page.setExtraHTTPHeaders({ 'viewport-width': 500, 'viewport-height': 500 });29 await page.screenshot({ path: 'example.png' });30 await browser.close();31})();32const { chromium } = require('play

Full Screen

Using AI Code Generation

copy

Full Screen

1await page.setDefaultViewport({ width: 1920, height: 1080 });2await page.setViewportSize({ width: 1920, height: 1080 });3await page.emulateViewportSize({ width: 1920, height: 1080 });4await page.emulateMedia({ colorScheme: 'dark' });5await page.emulateMediaFeatures([6 { name: 'prefers-color-scheme', value: 'dark' },7]);8await page.emulateTimezone('America/Los_Angeles');9await page.emulate({10 viewport: { width: 1920, height: 1080 },11 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36',12});13await page.emulateMedia({ colorScheme: 'dark' });14await page.emulateMediaFeatures([15 { name: 'prefers-color-scheme', value: 'dark' },16]);17await page.emulateTimezone('America/Los_Angeles');18await page.emulate({19 viewport: { width: 1920, height: 1080 },20 'Mozilla/5.0 (

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext({ viewport: { width: 1920, height: 1080 } });5 const page = await context.newPage();6 await browser.close();7})();8const { chromium } = require('playwright');9(async () => {10 const browser = await chromium.launch();11 const context = await browser.newContext();12 const page = await context.newPage();13 await page.setDefaultViewport({ width: 1920, height: 1080 });14 await browser.close();15})();16const { chromium } = require('playwright');17(async () => {18 const browser = await chromium.launch();19 const context = await browser.newContext();20 const page = await context.newPage();21 await page.setViewportSize({ width: 1920, height: 1080 });22 await browser.close();23})();24const { chromium } = require('playwright');25(async () => {26 const browser = await chromium.launch();27 const context = await browser.newContext();28 const page = await context.newPage();29 await page.setViewportSize({ width: 1920, height: 1080 });30 await browser.close();31})();32const { chromium } = require('playwright');33(async () => {34 const browser = await chromium.launch();35 const context = await browser.newContext();

Full Screen

Playwright tutorial

LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright Internal automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful