From 1b1e1348b5f3d063bb2877ffff23ae2d5802e854 Mon Sep 17 00:00:00 2001 From: Aleh Zasypkin Date: Thu, 7 May 2020 17:02:30 +0200 Subject: [PATCH] Add Login Selector functional tests. --- test/functional/page_objects/common_page.ts | 6 +- test/functional/page_objects/index.ts | 4 +- .../{shield_page.ts => login_page.ts} | 6 +- .../components/login_form/login_form.tsx | 1 + x-pack/scripts/functional_tests.js | 6 +- .../test/functional/apps/security/security.ts | 2 +- .../apps/security/trial_license/index.ts | 15 + .../security/trial_license/login_selector.ts | 100 ++++++ .../apps/spaces/copy_saved_objects.ts | 2 +- .../functional/apps/spaces/enter_space.ts | 4 +- .../apps/spaces/spaces_selection.ts | 4 +- .../feature_controls/visualize_security.ts | 5 +- ...rity_basic.js => config_security_basic.ts} | 3 +- .../test/functional/config_security_trial.ts | 92 ++++++ .../page_objects/monitoring_page.js | 4 +- .../{security_page.js => security_page.ts} | 307 +++++++++++------- .../fixtures/saml_provider/kibana.json | 7 + .../fixtures/saml_provider/metadata.xml | 41 +++ .../fixtures/saml_provider/server/index.ts | 14 + .../saml_provider/server/init_routes.ts | 46 +++ 20 files changed, 537 insertions(+), 132 deletions(-) rename test/functional/page_objects/{shield_page.ts => login_page.ts} (90%) create mode 100644 x-pack/test/functional/apps/security/trial_license/index.ts create mode 100644 x-pack/test/functional/apps/security/trial_license/login_selector.ts rename x-pack/test/functional/{config_security_basic.js => config_security_basic.ts} (93%) create mode 100644 x-pack/test/functional/config_security_trial.ts rename x-pack/test/functional/page_objects/{security_page.js => security_page.ts} (62%) create mode 100644 x-pack/test/saml_api_integration/fixtures/saml_provider/kibana.json create mode 100644 x-pack/test/saml_api_integration/fixtures/saml_provider/metadata.xml create mode 100644 x-pack/test/saml_api_integration/fixtures/saml_provider/server/index.ts create mode 100644 x-pack/test/saml_api_integration/fixtures/saml_provider/server/init_routes.ts diff --git a/test/functional/page_objects/common_page.ts b/test/functional/page_objects/common_page.ts index 4a7570049ded737..c591891a846b9e2 100644 --- a/test/functional/page_objects/common_page.ts +++ b/test/functional/page_objects/common_page.ts @@ -34,7 +34,7 @@ export function CommonPageProvider({ getService, getPageObjects }: FtrProviderCo const find = getService('find'); const globalNav = getService('globalNav'); const testSubjects = getService('testSubjects'); - const PageObjects = getPageObjects(['shield']); + const PageObjects = getPageObjects(['login']); const defaultTryTimeout = config.get('timeouts.try'); const defaultFindTimeout = config.get('timeouts.find'); @@ -76,12 +76,12 @@ export function CommonPageProvider({ getService, getPageObjects }: FtrProviderCo if (loginPage && !wantedLoginPage) { log.debug('Found login page'); if (config.get('security.disableTestUser')) { - await PageObjects.shield.login( + await PageObjects.login.login( config.get('servers.kibana.username'), config.get('servers.kibana.password') ); } else { - await PageObjects.shield.login('test_user', 'changeme'); + await PageObjects.login.login('test_user', 'changeme'); } await find.byCssSelector( diff --git a/test/functional/page_objects/index.ts b/test/functional/page_objects/index.ts index 01301109b80efb5..10b09c742f58e79 100644 --- a/test/functional/page_objects/index.ts +++ b/test/functional/page_objects/index.ts @@ -28,7 +28,7 @@ import { HomePageProvider } from './home_page'; import { NewsfeedPageProvider } from './newsfeed_page'; import { SettingsPageProvider } from './settings_page'; import { SharePageProvider } from './share_page'; -import { ShieldPageProvider } from './shield_page'; +import { LoginPageProvider } from './login_page'; import { TimePickerProvider } from './time_picker'; import { TimelionPageProvider } from './timelion_page'; import { VisualBuilderPageProvider } from './visual_builder_page'; @@ -51,7 +51,7 @@ export const pageObjects = { newsfeed: NewsfeedPageProvider, settings: SettingsPageProvider, share: SharePageProvider, - shield: ShieldPageProvider, + login: LoginPageProvider, timelion: TimelionPageProvider, timePicker: TimePickerProvider, visualBuilder: VisualBuilderPageProvider, diff --git a/test/functional/page_objects/shield_page.ts b/test/functional/page_objects/login_page.ts similarity index 90% rename from test/functional/page_objects/shield_page.ts rename to test/functional/page_objects/login_page.ts index 2b9c59373a8bc32..c84f47a342155a2 100644 --- a/test/functional/page_objects/shield_page.ts +++ b/test/functional/page_objects/login_page.ts @@ -19,10 +19,10 @@ import { FtrProviderContext } from '../ftr_provider_context'; -export function ShieldPageProvider({ getService }: FtrProviderContext) { +export function LoginPageProvider({ getService }: FtrProviderContext) { const testSubjects = getService('testSubjects'); - class ShieldPage { + class LoginPage { async login(user: string, pwd: string) { await testSubjects.setValue('loginUsername', user); await testSubjects.setValue('loginPassword', pwd); @@ -30,5 +30,5 @@ export function ShieldPageProvider({ getService }: FtrProviderContext) { } } - return new ShieldPage(); + return new LoginPage(); } diff --git a/x-pack/plugins/security/public/authentication/login/components/login_form/login_form.tsx b/x-pack/plugins/security/public/authentication/login/components/login_form/login_form.tsx index 460c6550085a455..b59547aff24db30 100644 --- a/x-pack/plugins/security/public/authentication/login/components/login_form/login_form.tsx +++ b/x-pack/plugins/security/public/authentication/login/components/login_form/login_form.tsx @@ -262,6 +262,7 @@ export class LoginForm extends Component { {this.props.selector.providers.map(provider => (