diff options
author | Stas Vilchik <stas.vilchik@sonarsource.com> | 2017-06-12 03:50:27 -0700 |
---|---|---|
committer | Stas Vilchik <stas.vilchik@sonarsource.com> | 2017-06-20 04:10:53 -0700 |
commit | fbc932a882b6dec72900f5242d0cead7ff03e4b2 (patch) | |
tree | 504bae0d532ab34faa13fc4d7cf27668c3c31634 /server/sonar-web/src/main/js/apps/tutorials/onboarding/commands | |
parent | a5e983797e23c5ff158483653415da05394d2bef (diff) | |
download | sonarqube-fbc932a882b6dec72900f5242d0cead7ff03e4b2.tar.gz sonarqube-fbc932a882b6dec72900f5242d0cead7ff03e4b2.zip |
UI: SONAR-9355 Create onboarding tutorial (#2137)
Diffstat (limited to 'server/sonar-web/src/main/js/apps/tutorials/onboarding/commands')
30 files changed, 1809 insertions, 0 deletions
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/BuildWrapper.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/BuildWrapper.js new file mode 100644 index 00000000000..3b0624e4629 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/BuildWrapper.js @@ -0,0 +1,58 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { translate } from '../../../../helpers/l10n'; + +type Props = { + className?: string, + os: string +}; + +const filenames = { + linux: 'build-wrapper-win-x86.zip', + win: 'build-wrapper-linux-x86.zip', + mac: 'build-wrapper-macosx-x86.zip' +}; + +export default function BuildWrapper(props: Props) { + return ( + <div className={props.className}> + <h4 className="spacer-bottom"> + {translate('onboarding.analysis.build_wrapper.header', props.os)} + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={{ + __html: translate('onboarding.analysis.build_wrapper.text', props.os) + }} + /> + <p> + <a + className="button" + download={filenames[props.os]} + href={window.baseUrl + '/static/cpp/' + filenames[props.os]} + target="_blank"> + {translate('download_verb')} + </a> + </p> + </div> + ); +} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/ClangGCC.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/ClangGCC.js new file mode 100644 index 00000000000..7940263931c --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/ClangGCC.js @@ -0,0 +1,76 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import Command from './Command'; +import SQScanner from './SQScanner'; +import BuildWrapper from './BuildWrapper'; +import { translate } from '../../../../helpers/l10n'; + +type Props = { + host: string, + os: string, + organization?: string, + projectKey: string, + token: string +}; + +const executables = { + linux: 'build-wrapper-linux-x86-64', + win: 'build-wrapper-win-x86-64.exe', + mac: 'build-wrapper-macosx-x86' +}; + +export default function ClangGCC(props: Props) { + const command1 = `${executables[props.os]} --out-dir bw-output make clean all`; + + const command2 = [ + props.os === 'win' ? 'sonar-scanner.bat' : 'sonar-scanner', + `-Dsonar.projectKey=${props.projectKey}`, + props.organization && `-Dsonar.organization=${props.organization}`, + '-Dsonar.sources=.', + '-Dsonar.cfamily.build-wrapper-output=bw-output', + `-Dsonar.host.url=${props.host}`, + `-Dsonar.login=${props.token}` + ]; + + return ( + <div> + <SQScanner os={props.os} /> + <BuildWrapper className="huge-spacer-top" os={props.os} /> + + <h4 className="huge-spacer-top spacer-bottom"> + {translate('onboarding.analysis.sq_scanner.execute')} + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={{ + __html: translate('onboarding.analysis.sq_scanner.execute.text') + }} + /> + <Command command={command1} /> + <Command command={command2} /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.sq_scanner.docs') }} + /> + </div> + ); +} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Command.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Command.js new file mode 100644 index 00000000000..ec9f980083d --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Command.js @@ -0,0 +1,89 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import Clipboard from 'clipboard'; +import Tooltip from '../../../../components/controls/Tooltip'; +import { translate } from '../../../../helpers/l10n'; + +type Props = { + command: string | Array<?string> +}; + +type State = { + tooltipShown: boolean +}; + +const s = ' \\' + '\n '; + +export default class Command extends React.PureComponent { + clipboard: Object; + copyButton: HTMLButtonElement; + mounted: boolean; + props: Props; + state: State = { tooltipShown: false }; + + componentDidMount() { + this.mounted = true; + this.clipboard = new Clipboard(this.copyButton); + this.clipboard.on('success', this.showTooltip); + } + + componentWillUnmount() { + this.mounted = false; + this.clipboard.destroy(); + } + + showTooltip = () => { + if (this.mounted) { + this.setState({ tooltipShown: true }); + setTimeout(this.hideTooltip, 1000); + } + }; + + hideTooltip = () => { + if (this.mounted) { + this.setState({ tooltipShown: false }); + } + }; + + render() { + const { command } = this.props; + const commandArray = Array.isArray(command) ? command.filter(line => line != null) : [command]; + const finalCommand = commandArray.join(s); + + const button = ( + <button data-clipboard-text={finalCommand} ref={node => (this.copyButton = node)}> + {translate('copy')} + </button> + ); + + return ( + <div className="onboarding-command"> + <pre>{finalCommand}</pre> + {this.state.tooltipShown + ? <Tooltip defaultVisible={true} placement="top" overlay="Copied!" trigger="manual"> + {button} + </Tooltip> + : button} + </div> + ); + } +} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/DotNet.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/DotNet.js new file mode 100644 index 00000000000..8885458953b --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/DotNet.js @@ -0,0 +1,68 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import Command from './Command'; +import MSBuildScanner from './MSBuildScanner'; +import { translate } from '../../../../helpers/l10n'; + +type Props = {| + host: string, + organization?: string, + projectKey: string, + token: string +|}; + +export default function DotNet(props: Props) { + const command1 = [ + 'SonarQube.Scanner.MSBuild.exe begin', + `/k:"${props.projectKey}"`, + props.organization && `/d:"sonar.organization=${props.organization}"`, + `/d:"sonar.host.url=${props.host}`, + `/d:"sonar.login=${props.token}"` + ]; + + const command2 = 'MsBuild.exe /t:Rebuild'; + + const command3 = ['SonarQube.Scanner.MSBuild.exe end', `/d:"sonar.login=${props.token}"`]; + + return ( + <div> + <MSBuildScanner /> + + <h4 className="huge-spacer-top spacer-bottom"> + {translate('onboarding.analysis.msbuild.execute')} + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={{ + __html: translate('onboarding.analysis.msbuild.execute.text') + }} + /> + <Command command={command1} /> + <Command command={command2} /> + <Command command={command3} /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.msbuild.docs') }} + /> + </div> + ); +} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js new file mode 100644 index 00000000000..3f89a2bb241 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js @@ -0,0 +1,59 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import Command from './Command'; +import { translate } from '../../../../helpers/l10n'; + +type Props = {| + host: string, + organization?: string, + token: string +|}; + +export default function JavaGradle(props: Props) { + const config = 'plugins {\n id "org.sonarqube" version "2.2"\n}'; + + const command = [ + './gradlew sonarqube', + props.organization && `-Dsonar.organization=${props.organization}`, + `-Dsonar.host.url=${props.host}`, + `-Dsonar.login=${props.token}` + ]; + + return ( + <div> + <h4 className="spacer-bottom">{translate('onboarding.analysis.java.gradle.header')}</h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.java.gradle.text.1') }} + /> + <Command command={config} /> + <p className="spacer-top spacer-bottom markdown"> + {translate('onboarding.analysis.java.gradle.text.2')} + </p> + <Command command={command} /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.java.gradle.docs') }} + /> + </div> + ); +} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js new file mode 100644 index 00000000000..6317b1bac2e --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js @@ -0,0 +1,50 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import Command from './Command'; +import { translate } from '../../../../helpers/l10n'; + +type Props = {| + host: string, + organization?: string, + token: string +|}; + +export default function JavaMaven(props: Props) { + const command = [ + 'mvn sonar:sonar', + props.organization && `-Dsonar.organization=${props.organization}`, + `-Dsonar.host.url=${props.host}`, + `-Dsonar.login=${props.token}` + ]; + + return ( + <div> + <h4 className="spacer-bottom">{translate('onboarding.analysis.java.maven.header')}</h4> + <p className="spacer-bottom markdown">{translate('onboarding.analysis.java.maven.text')}</p> + <Command command={command} /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.java.maven.docs') }} + /> + </div> + ); +} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/MSBuildScanner.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/MSBuildScanner.js new file mode 100644 index 00000000000..3be38395ca9 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/MSBuildScanner.js @@ -0,0 +1,46 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { translate } from '../../../../helpers/l10n'; + +type Props = { + className?: string +}; + +export default function MSBuildScanner(props: Props) { + return ( + <div className={props.className}> + <h4 className="spacer-bottom">{translate('onboarding.analysis.msbuild.header')}</h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.msbuild.text') }} + /> + <p> + <a + className="button" + href="http://redirect.sonarsource.com/doc/install-configure-scanner-msbuild.html" + target="_blank"> + {translate('download_verb')} + </a> + </p> + </div> + ); +} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Msvc.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Msvc.js new file mode 100644 index 00000000000..00fba90474a --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Msvc.js @@ -0,0 +1,71 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import Command from './Command'; +import MSBuildScanner from './MSBuildScanner'; +import BuildWrapper from './BuildWrapper'; +import { translate } from '../../../../helpers/l10n'; + +type Props = {| + host: string, + organization?: string, + projectKey: string, + token: string +|}; + +export default function Msvc(props: Props) { + const command1 = [ + 'SonarQube.Scanner.MSBuild.exe begin', + `/k:"${props.projectKey}"`, + props.organization && `/d:"sonar.organization=${props.organization}"`, + '/d:"sonar.cfamily.build-wrapper-output=bw-output"', + `/d:"sonar.host.url=${props.host}`, + `/d:"sonar.login=${props.token}"` + ]; + + const command2 = 'build-wrapper-win-x86-64.exe --out-dir bw-output MsBuild.exe /t:Rebuild'; + + const command3 = ['SonarQube.Scanner.MSBuild.exe end', `/d:"sonar.login=${props.token}"`]; + + return ( + <div> + <MSBuildScanner /> + <BuildWrapper className="huge-spacer-top" os="win" /> + + <h4 className="huge-spacer-top spacer-bottom"> + {translate('onboarding.analysis.msbuild.execute')} + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={{ + __html: translate('onboarding.analysis.msbuild.execute.text') + }} + /> + <Command command={command1} /> + <Command command={command2} /> + <Command command={command3} /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.msbuild.docs') }} + /> + </div> + ); +} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Other.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Other.js new file mode 100644 index 00000000000..534be2f8584 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Other.js @@ -0,0 +1,64 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import Command from './Command'; +import SQScanner from './SQScanner'; +import { translate } from '../../../../helpers/l10n'; + +type Props = {| + host: string, + organization?: string, + os: string, + projectKey: string, + token: string +|}; + +export default function Other(props: Props) { + const command = [ + props.os === 'win' ? 'sonar-scanner.bat' : 'sonar-scanner', + `-Dsonar.projectKey=${props.projectKey}`, + props.organization && `-Dsonar.organization=${props.organization}`, + '-Dsonar.sources=.', + `-Dsonar.host.url=${props.host}`, + `-Dsonar.login=${props.token}` + ]; + + return ( + <div> + <SQScanner os={props.os} /> + + <h4 className="huge-spacer-top spacer-bottom"> + {translate('onboarding.analysis.sq_scanner.execute')} + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={{ + __html: translate('onboarding.analysis.sq_scanner.execute.text') + }} + /> + <Command command={command} /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.sq_scanner.docs') }} + /> + </div> + ); +} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/SQScanner.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/SQScanner.js new file mode 100644 index 00000000000..d36c6379259 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/SQScanner.js @@ -0,0 +1,51 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { translate } from '../../../../helpers/l10n'; + +type Props = { + className?: string, + os: string +}; + +export default function SQScanner(props: Props) { + return ( + <div className={props.className}> + <h4 className="spacer-bottom"> + {translate('onboarding.analysis.sq_scanner.header', props.os)} + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={{ + __html: translate('onboarding.analysis.sq_scanner.text', props.os) + }} + /> + <p> + <a + className="button" + href="http://redirect.sonarsource.com/doc/install-configure-scanner.html" + target="_blank"> + {translate('download_verb')} + </a> + </p> + </div> + ); +} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/BuildWrapper-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/BuildWrapper-test.js new file mode 100644 index 00000000000..2135abc7606 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/BuildWrapper-test.js @@ -0,0 +1,29 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { shallow } from 'enzyme'; +import BuildWrapper from '../BuildWrapper'; + +it('renders correctly', () => { + expect(shallow(<BuildWrapper os="win" />)).toMatchSnapshot(); + expect(shallow(<BuildWrapper os="linux" />)).toMatchSnapshot(); + expect(shallow(<BuildWrapper os="mac" />)).toMatchSnapshot(); +}); diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/ClangGCC-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/ClangGCC-test.js new file mode 100644 index 00000000000..16c458660b8 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/ClangGCC-test.js @@ -0,0 +1,45 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { shallow } from 'enzyme'; +import ClangGCC from '../ClangGCC'; + +it('renders correctly', () => { + expect( + shallow(<ClangGCC host="host" os="win" projectKey="projectKey" token="token" />) + ).toMatchSnapshot(); + + expect( + shallow(<ClangGCC host="host" os="linux" projectKey="projectKey" token="token" />) + ).toMatchSnapshot(); + + expect( + shallow( + <ClangGCC + host="host" + os="linux" + organization="organization" + projectKey="projectKey" + token="token" + /> + ) + ).toMatchSnapshot(); +}); diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Command-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Command-test.js new file mode 100644 index 00000000000..19ee425c791 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Command-test.js @@ -0,0 +1,27 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { shallow } from 'enzyme'; +import Command from '../Command'; + +it('renders correctly', () => { + expect(shallow(<Command command={'foo\nbar'} />)).toMatchSnapshot(); +}); diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/DotNet-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/DotNet-test.js new file mode 100644 index 00000000000..f1e320e2b3f --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/DotNet-test.js @@ -0,0 +1,32 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { shallow } from 'enzyme'; +import DotNet from '../DotNet'; + +it('renders correctly', () => { + expect(shallow(<DotNet host="host" projectKey="projectKey" token="token" />)).toMatchSnapshot(); + expect( + shallow( + <DotNet host="host" organization="organization" projectKey="projectKey" token="token" /> + ) + ).toMatchSnapshot(); +}); diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/JavaGradle-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/JavaGradle-test.js new file mode 100644 index 00000000000..ef326ddc8c9 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/JavaGradle-test.js @@ -0,0 +1,30 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { shallow } from 'enzyme'; +import JavaGradle from '../JavaGradle'; + +it('renders correctly', () => { + expect(shallow(<JavaGradle host="host" token="token" />)).toMatchSnapshot(); + expect( + shallow(<JavaGradle host="host" organization="organization" token="token" />) + ).toMatchSnapshot(); +}); diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/JavaMaven-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/JavaMaven-test.js new file mode 100644 index 00000000000..bb24f89e611 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/JavaMaven-test.js @@ -0,0 +1,30 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { shallow } from 'enzyme'; +import JavaMaven from '../JavaMaven'; + +it('renders correctly', () => { + expect(shallow(<JavaMaven host="host" token="token" />)).toMatchSnapshot(); + expect( + shallow(<JavaMaven host="host" organization="organization" token="token" />) + ).toMatchSnapshot(); +}); diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/MSBuildScanner-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/MSBuildScanner-test.js new file mode 100644 index 00000000000..e2c22bc157e --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/MSBuildScanner-test.js @@ -0,0 +1,27 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { shallow } from 'enzyme'; +import MSBuildScanner from '../MSBuildScanner'; + +it('renders correctly', () => { + expect(shallow(<MSBuildScanner />)).toMatchSnapshot(); +}); diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Msvc-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Msvc-test.js new file mode 100644 index 00000000000..28bfa947aa6 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Msvc-test.js @@ -0,0 +1,30 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { shallow } from 'enzyme'; +import Msvc from '../Msvc'; + +it('renders correctly', () => { + expect(shallow(<Msvc host="host" projectKey="projectKey" token="token" />)).toMatchSnapshot(); + expect( + shallow(<Msvc host="host" organization="organization" projectKey="projectKey" token="token" />) + ).toMatchSnapshot(); +}); diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Other-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Other-test.js new file mode 100644 index 00000000000..0eda78f2f94 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/Other-test.js @@ -0,0 +1,45 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { shallow } from 'enzyme'; +import Other from '../Other'; + +it('renders correctly', () => { + expect( + shallow(<Other host="host" os="win" projectKey="projectKey" token="token" />) + ).toMatchSnapshot(); + + expect( + shallow(<Other host="host" os="linux" projectKey="projectKey" token="token" />) + ).toMatchSnapshot(); + + expect( + shallow( + <Other + host="host" + os="linux" + organization="organization" + projectKey="projectKey" + token="token" + /> + ) + ).toMatchSnapshot(); +}); diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/SQScanner-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/SQScanner-test.js new file mode 100644 index 00000000000..3b2881377ad --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/SQScanner-test.js @@ -0,0 +1,29 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// @flow +import React from 'react'; +import { shallow } from 'enzyme'; +import SQScanner from '../SQScanner'; + +it('renders correctly', () => { + expect(shallow(<SQScanner os="win" />)).toMatchSnapshot(); + expect(shallow(<SQScanner os="linux" />)).toMatchSnapshot(); + expect(shallow(<SQScanner os="mac" />)).toMatchSnapshot(); +}); diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/BuildWrapper-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/BuildWrapper-test.js.snap new file mode 100644 index 00000000000..4a1e0c3944c --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/BuildWrapper-test.js.snap @@ -0,0 +1,85 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders correctly 1`] = ` +<div> + <h4 + className="spacer-bottom" + > + onboarding.analysis.build_wrapper.header.win + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.build_wrapper.text.win", + } + } + /> + <p> + <a + className="button" + download="build-wrapper-linux-x86.zip" + href="/static/cpp/build-wrapper-linux-x86.zip" + target="_blank" + > + download_verb + </a> + </p> +</div> +`; + +exports[`renders correctly 2`] = ` +<div> + <h4 + className="spacer-bottom" + > + onboarding.analysis.build_wrapper.header.linux + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.build_wrapper.text.linux", + } + } + /> + <p> + <a + className="button" + download="build-wrapper-win-x86.zip" + href="/static/cpp/build-wrapper-win-x86.zip" + target="_blank" + > + download_verb + </a> + </p> +</div> +`; + +exports[`renders correctly 3`] = ` +<div> + <h4 + className="spacer-bottom" + > + onboarding.analysis.build_wrapper.header.mac + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.build_wrapper.text.mac", + } + } + /> + <p> + <a + className="button" + download="build-wrapper-macosx-x86.zip" + href="/static/cpp/build-wrapper-macosx-x86.zip" + target="_blank" + > + download_verb + </a> + </p> +</div> +`; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/ClangGCC-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/ClangGCC-test.js.snap new file mode 100644 index 00000000000..1ec053c4083 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/ClangGCC-test.js.snap @@ -0,0 +1,148 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders correctly 1`] = ` +<div> + <SQScanner + os="win" + /> + <BuildWrapper + className="huge-spacer-top" + os="win" + /> + <h4 + className="huge-spacer-top spacer-bottom" + > + onboarding.analysis.sq_scanner.execute + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.execute.text", + } + } + /> + <Command + command="build-wrapper-win-x86-64.exe --out-dir bw-output make clean all" + /> + <Command + command={ + Array [ + "sonar-scanner.bat", + "-Dsonar.projectKey=projectKey", + undefined, + "-Dsonar.sources=.", + "-Dsonar.cfamily.build-wrapper-output=bw-output", + "-Dsonar.host.url=host", + "-Dsonar.login=token", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.docs", + } + } + /> +</div> +`; + +exports[`renders correctly 2`] = ` +<div> + <SQScanner + os="linux" + /> + <BuildWrapper + className="huge-spacer-top" + os="linux" + /> + <h4 + className="huge-spacer-top spacer-bottom" + > + onboarding.analysis.sq_scanner.execute + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.execute.text", + } + } + /> + <Command + command="build-wrapper-linux-x86-64 --out-dir bw-output make clean all" + /> + <Command + command={ + Array [ + "sonar-scanner", + "-Dsonar.projectKey=projectKey", + undefined, + "-Dsonar.sources=.", + "-Dsonar.cfamily.build-wrapper-output=bw-output", + "-Dsonar.host.url=host", + "-Dsonar.login=token", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.docs", + } + } + /> +</div> +`; + +exports[`renders correctly 3`] = ` +<div> + <SQScanner + os="linux" + /> + <BuildWrapper + className="huge-spacer-top" + os="linux" + /> + <h4 + className="huge-spacer-top spacer-bottom" + > + onboarding.analysis.sq_scanner.execute + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.execute.text", + } + } + /> + <Command + command="build-wrapper-linux-x86-64 --out-dir bw-output make clean all" + /> + <Command + command={ + Array [ + "sonar-scanner", + "-Dsonar.projectKey=projectKey", + "-Dsonar.organization=organization", + "-Dsonar.sources=.", + "-Dsonar.cfamily.build-wrapper-output=bw-output", + "-Dsonar.host.url=host", + "-Dsonar.login=token", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.docs", + } + } + /> +</div> +`; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap new file mode 100644 index 00000000000..9ce1c887f5f --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap @@ -0,0 +1,18 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders correctly 1`] = ` +<div + className="onboarding-command" +> + <pre> + foo + bar + </pre> + <button + data-clipboard-text="foo + bar" + > + copy + </button> +</div> +`; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/DotNet-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/DotNet-test.js.snap new file mode 100644 index 00000000000..3672a2f4c8d --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/DotNet-test.js.snap @@ -0,0 +1,99 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders correctly 1`] = ` +<div> + <MSBuildScanner /> + <h4 + className="huge-spacer-top spacer-bottom" + > + onboarding.analysis.msbuild.execute + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.msbuild.execute.text", + } + } + /> + <Command + command={ + Array [ + "SonarQube.Scanner.MSBuild.exe begin", + "/k:\\"projectKey\\"", + undefined, + "/d:\\"sonar.host.url=host", + "/d:\\"sonar.login=token\\"", + ] + } + /> + <Command + command="MsBuild.exe /t:Rebuild" + /> + <Command + command={ + Array [ + "SonarQube.Scanner.MSBuild.exe end", + "/d:\\"sonar.login=token\\"", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.msbuild.docs", + } + } + /> +</div> +`; + +exports[`renders correctly 2`] = ` +<div> + <MSBuildScanner /> + <h4 + className="huge-spacer-top spacer-bottom" + > + onboarding.analysis.msbuild.execute + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.msbuild.execute.text", + } + } + /> + <Command + command={ + Array [ + "SonarQube.Scanner.MSBuild.exe begin", + "/k:\\"projectKey\\"", + "/d:\\"sonar.organization=organization\\"", + "/d:\\"sonar.host.url=host", + "/d:\\"sonar.login=token\\"", + ] + } + /> + <Command + command="MsBuild.exe /t:Rebuild" + /> + <Command + command={ + Array [ + "SonarQube.Scanner.MSBuild.exe end", + "/d:\\"sonar.login=token\\"", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.msbuild.docs", + } + } + /> +</div> +`; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap new file mode 100644 index 00000000000..df6bf9db47f --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap @@ -0,0 +1,93 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders correctly 1`] = ` +<div> + <h4 + className="spacer-bottom" + > + onboarding.analysis.java.gradle.header + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.java.gradle.text.1", + } + } + /> + <Command + command="plugins { + id \\"org.sonarqube\\" version \\"2.2\\" + }" + /> + <p + className="spacer-top spacer-bottom markdown" + > + onboarding.analysis.java.gradle.text.2 + </p> + <Command + command={ + Array [ + "./gradlew sonarqube", + undefined, + "-Dsonar.host.url=host", + "-Dsonar.login=token", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.java.gradle.docs", + } + } + /> +</div> +`; + +exports[`renders correctly 2`] = ` +<div> + <h4 + className="spacer-bottom" + > + onboarding.analysis.java.gradle.header + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.java.gradle.text.1", + } + } + /> + <Command + command="plugins { + id \\"org.sonarqube\\" version \\"2.2\\" + }" + /> + <p + className="spacer-top spacer-bottom markdown" + > + onboarding.analysis.java.gradle.text.2 + </p> + <Command + command={ + Array [ + "./gradlew sonarqube", + "-Dsonar.organization=organization", + "-Dsonar.host.url=host", + "-Dsonar.login=token", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.java.gradle.docs", + } + } + /> +</div> +`; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaMaven-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaMaven-test.js.snap new file mode 100644 index 00000000000..3cd4796988b --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaMaven-test.js.snap @@ -0,0 +1,67 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders correctly 1`] = ` +<div> + <h4 + className="spacer-bottom" + > + onboarding.analysis.java.maven.header + </h4> + <p + className="spacer-bottom markdown" + > + onboarding.analysis.java.maven.text + </p> + <Command + command={ + Array [ + "mvn sonar:sonar", + undefined, + "-Dsonar.host.url=host", + "-Dsonar.login=token", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.java.maven.docs", + } + } + /> +</div> +`; + +exports[`renders correctly 2`] = ` +<div> + <h4 + className="spacer-bottom" + > + onboarding.analysis.java.maven.header + </h4> + <p + className="spacer-bottom markdown" + > + onboarding.analysis.java.maven.text + </p> + <Command + command={ + Array [ + "mvn sonar:sonar", + "-Dsonar.organization=organization", + "-Dsonar.host.url=host", + "-Dsonar.login=token", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.java.maven.docs", + } + } + /> +</div> +`; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/MSBuildScanner-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/MSBuildScanner-test.js.snap new file mode 100644 index 00000000000..c7f156bc53f --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/MSBuildScanner-test.js.snap @@ -0,0 +1,28 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders correctly 1`] = ` +<div> + <h4 + className="spacer-bottom" + > + onboarding.analysis.msbuild.header + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.msbuild.text", + } + } + /> + <p> + <a + className="button" + href="http://redirect.sonarsource.com/doc/install-configure-scanner-msbuild.html" + target="_blank" + > + download_verb + </a> + </p> +</div> +`; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Msvc-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Msvc-test.js.snap new file mode 100644 index 00000000000..c2f54b40496 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Msvc-test.js.snap @@ -0,0 +1,109 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders correctly 1`] = ` +<div> + <MSBuildScanner /> + <BuildWrapper + className="huge-spacer-top" + os="win" + /> + <h4 + className="huge-spacer-top spacer-bottom" + > + onboarding.analysis.msbuild.execute + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.msbuild.execute.text", + } + } + /> + <Command + command={ + Array [ + "SonarQube.Scanner.MSBuild.exe begin", + "/k:\\"projectKey\\"", + undefined, + "/d:\\"sonar.cfamily.build-wrapper-output=bw-output\\"", + "/d:\\"sonar.host.url=host", + "/d:\\"sonar.login=token\\"", + ] + } + /> + <Command + command="build-wrapper-win-x86-64.exe --out-dir bw-output MsBuild.exe /t:Rebuild" + /> + <Command + command={ + Array [ + "SonarQube.Scanner.MSBuild.exe end", + "/d:\\"sonar.login=token\\"", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.msbuild.docs", + } + } + /> +</div> +`; + +exports[`renders correctly 2`] = ` +<div> + <MSBuildScanner /> + <BuildWrapper + className="huge-spacer-top" + os="win" + /> + <h4 + className="huge-spacer-top spacer-bottom" + > + onboarding.analysis.msbuild.execute + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.msbuild.execute.text", + } + } + /> + <Command + command={ + Array [ + "SonarQube.Scanner.MSBuild.exe begin", + "/k:\\"projectKey\\"", + "/d:\\"sonar.organization=organization\\"", + "/d:\\"sonar.cfamily.build-wrapper-output=bw-output\\"", + "/d:\\"sonar.host.url=host", + "/d:\\"sonar.login=token\\"", + ] + } + /> + <Command + command="build-wrapper-win-x86-64.exe --out-dir bw-output MsBuild.exe /t:Rebuild" + /> + <Command + command={ + Array [ + "SonarQube.Scanner.MSBuild.exe end", + "/d:\\"sonar.login=token\\"", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.msbuild.docs", + } + } + /> +</div> +`; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Other-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Other-test.js.snap new file mode 100644 index 00000000000..699ff84d414 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Other-test.js.snap @@ -0,0 +1,124 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders correctly 1`] = ` +<div> + <SQScanner + os="win" + /> + <h4 + className="huge-spacer-top spacer-bottom" + > + onboarding.analysis.sq_scanner.execute + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.execute.text", + } + } + /> + <Command + command={ + Array [ + "sonar-scanner.bat", + "-Dsonar.projectKey=projectKey", + undefined, + "-Dsonar.sources=.", + "-Dsonar.host.url=host", + "-Dsonar.login=token", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.docs", + } + } + /> +</div> +`; + +exports[`renders correctly 2`] = ` +<div> + <SQScanner + os="linux" + /> + <h4 + className="huge-spacer-top spacer-bottom" + > + onboarding.analysis.sq_scanner.execute + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.execute.text", + } + } + /> + <Command + command={ + Array [ + "sonar-scanner", + "-Dsonar.projectKey=projectKey", + undefined, + "-Dsonar.sources=.", + "-Dsonar.host.url=host", + "-Dsonar.login=token", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.docs", + } + } + /> +</div> +`; + +exports[`renders correctly 3`] = ` +<div> + <SQScanner + os="linux" + /> + <h4 + className="huge-spacer-top spacer-bottom" + > + onboarding.analysis.sq_scanner.execute + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.execute.text", + } + } + /> + <Command + command={ + Array [ + "sonar-scanner", + "-Dsonar.projectKey=projectKey", + "-Dsonar.organization=organization", + "-Dsonar.sources=.", + "-Dsonar.host.url=host", + "-Dsonar.login=token", + ] + } + /> + <p + className="big-spacer-top markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.docs", + } + } + /> +</div> +`; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/SQScanner-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/SQScanner-test.js.snap new file mode 100644 index 00000000000..bcdac075ce4 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/SQScanner-test.js.snap @@ -0,0 +1,82 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders correctly 1`] = ` +<div> + <h4 + className="spacer-bottom" + > + onboarding.analysis.sq_scanner.header.win + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.text.win", + } + } + /> + <p> + <a + className="button" + href="http://redirect.sonarsource.com/doc/install-configure-scanner.html" + target="_blank" + > + download_verb + </a> + </p> +</div> +`; + +exports[`renders correctly 2`] = ` +<div> + <h4 + className="spacer-bottom" + > + onboarding.analysis.sq_scanner.header.linux + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.text.linux", + } + } + /> + <p> + <a + className="button" + href="http://redirect.sonarsource.com/doc/install-configure-scanner.html" + target="_blank" + > + download_verb + </a> + </p> +</div> +`; + +exports[`renders correctly 3`] = ` +<div> + <h4 + className="spacer-bottom" + > + onboarding.analysis.sq_scanner.header.mac + </h4> + <p + className="spacer-bottom markdown" + dangerouslySetInnerHTML={ + Object { + "__html": "onboarding.analysis.sq_scanner.text.mac", + } + } + /> + <p> + <a + className="button" + href="http://redirect.sonarsource.com/doc/install-configure-scanner.html" + target="_blank" + > + download_verb + </a> + </p> +</div> +`; |