def Test(app):
            StartJavaCompleterServerInDirectory(app, tmp_dir)

            # Run the debug info to check that we have the correct project dir (cwd)
            request_data = BuildRequest(filetype='java')
            assert_that(
                app.post_json('/debug_info', request_data).json,
                CompleterProjectDirectoryMatcher(tmp_dir))
예제 #2
0
def ServerManagement_RestartServer_test(app):
    StartJavaCompleterServerInDirectory(
        app, PathToTestFile('simple_eclipse_project'))

    eclipse_project = PathToTestFile('simple_eclipse_project')
    maven_project = PathToTestFile('simple_maven_project')

    # Run the debug info to check that we have the correct project dir
    request_data = BuildRequest(filetype='java')
    assert_that(
        app.post_json('/debug_info', request_data).json,
        CompleterProjectDirectoryMatcher(eclipse_project))

    # Restart the server with a different client working directory
    filepath = PathToTestFile('simple_maven_project', 'src', 'main', 'java',
                              'com', 'test', 'TestFactory.java')

    app.post_json(
        '/run_completer_command',
        BuildRequest(
            filepath=filepath,
            filetype='java',
            working_dir=maven_project,
            command_arguments=['RestartServer'],
        ),
    )

    WaitUntilCompleterServerReady(app, 'java')

    app.post_json(
        '/event_notification',
        BuildRequest(
            filepath=filepath,
            filetype='java',
            working_dir=maven_project,
            event_name='FileReadyToParse',
        ))

    # Run the debug info to check that we have the correct project dir
    request_data = BuildRequest(filetype='java')
    assert_that(
        app.post_json('/debug_info', request_data).json,
        CompleterProjectDirectoryMatcher(maven_project))
예제 #3
0
def ServerManagement_ProjectDetection_EclipseParent_test( app ):
  StartJavaCompleterServerInDirectory(
    app, PathToTestFile( 'simple_eclipse_project', 'src' ) )

  project = PathToTestFile( 'simple_eclipse_project' )

  # Run the debug info to check that we have the correct project dir
  request_data = BuildRequest( filetype = 'java' )
  assert_that( app.post_json( '/debug_info', request_data ).json,
               CompleterProjectDirectoryMatcher( project ) )
예제 #4
0
def ServerManagement_ProjectDetection_NoParent_test( isolated_app ):
  with TemporaryTestDir() as tmp_dir:
    with isolated_app() as app:
      StartJavaCompleterServerInDirectory( app, tmp_dir )
      # Run the debug info to check that we have the correct project dir (cwd)
      request_data = BuildRequest(
        filetype = 'java',
        filepath = os.path.join( tmp_dir, 'foo.java' ) )
      assert_that( app.post_json( '/debug_info', request_data ).json,
                   CompleterProjectDirectoryMatcher( tmp_dir ) )
def ServerManagement_ProjectDetection_MultipleProjects_test(app):
    # The ycm_extra_conf.py file should set the project path to
    # multiple_projects/src
    project = PathToTestFile('multiple_projects', 'src')
    StartJavaCompleterServerWithFile(
        app,
        os.path.join(project, 'core', 'java', 'com', 'puremourning', 'widget',
                     'core', 'Utils.java'))

    # Run the debug info to check that we have the correct project dir
    request_data = BuildRequest(filetype='java')
    assert_that(
        app.post_json('/debug_info', request_data).json,
        CompleterProjectDirectoryMatcher(project))
예제 #6
0
    def test_ServerManagement_ProjectDetection_MavenParent_Submodule(
            self, app):
        StartJavaCompleterServerInDirectory(
            app,
            PathToTestFile('simple_maven_project', 'simple_submodule', 'src',
                           'main', 'java', 'com', 'test'))

        project = PathToTestFile('simple_maven_project')

        # Run the debug info to check that we have the correct project dir
        request_data = BuildRequest(filetype='java')
        assert_that(
            app.post_json('/debug_info', request_data).json,
            CompleterProjectDirectoryMatcher(project))
예제 #7
0
def ServerManagement_OpenProject_RelativePath_test( app ):
  StartJavaCompleterServerInDirectory( app,
                                       PathToTestFile( 'simple_gradle_project',
                                                       'src',
                                                       'main',
                                                       'java',
                                                       'com',
                                                       'test' ) )

  # Initially, we detect the gradle project...
  gradle_project = PathToTestFile( 'simple_gradle_project' )
  maven_project = PathToTestFile( 'simple_maven_project' )

  # Run the debug info to check that we have the correct project dir
  request_data = BuildRequest( filetype = 'java' )
  assert_that( app.post_json( '/debug_info', request_data ).json,
               CompleterProjectDirectoryMatcher( gradle_project ) )


  # We then force it to reload the maven project
  app.post_json(
    '/run_completer_command',
    BuildRequest(
      filetype = 'java',
      command_arguments = [
        'OpenProject',
        os.path.join( '..', 'simple_maven_project' ),
      ],
      working_dir = gradle_project,
    ),
  )

  # Run the debug info to check that we now have the maven project, without
  # changing anything else
  request_data = BuildRequest( filetype = 'java' )
  assert_that( app.post_json( '/debug_info', request_data ).json,
               CompleterProjectDirectoryMatcher( maven_project ) )
예제 #8
0
def ServerManagement_WipeWorkspace_WithConfig_test( isolated_app ):
  with TemporaryTestDir() as tmp_dir:
    with isolated_app( {
      'java_jdtls_use_clean_workspace': 0,
      'java_jdtls_workspace_root_path': tmp_dir
    } ) as app:
      StartJavaCompleterServerInDirectory(
        app, PathToTestFile( 'simple_eclipse_project', 'src' ) )

      project = PathToTestFile( 'simple_eclipse_project' )
      filepath = PathToTestFile( 'simple_eclipse_project',
                                 'src',
                                 'com',
                                 'youcompleteme',
                                 'Test.java' )

      app.post_json(
        '/run_completer_command',
        BuildRequest(
          filepath = filepath,
          filetype = 'java',
          command_arguments = [ 'WipeWorkspace', '--with-config' ],
        ),
      )

      WaitUntilCompleterServerReady( app, 'java' )

      assert_that(
        app.post_json( '/debug_info',
                       BuildRequest( filetype = 'java',
                                     filepath = filepath ) ).json,
        CompleterProjectDirectoryMatcher( project ) )

      assert_that(
        app.post_json( '/debug_info',
                       BuildRequest( filetype = 'java',
                                     filepath = filepath ) ).json,
        has_entry(
          'completer',
          has_entry( 'servers', contains_exactly(
            has_entry( 'extras', has_item(
              has_entries( {
                'key': 'Workspace Path',
                'value': starts_with( tmp_dir ),
              } )
            ) )
          ) )
        ) )
예제 #9
0
def ServerManagement_RestartServer_test(app):
    StartClangd(app, PathToTestFile('basic.cpp'))

    assert_that(GetDebugInfo(app),
                CompleterProjectDirectoryMatcher(PathToTestFile()))

    app.post_json(
        '/run_completer_command',
        BuildRequest(
            filepath=PathToTestFile('test-include', 'main.cpp'),
            filetype='cpp',
            command_arguments=['RestartServer'],
        ),
    )

    WaitUntilCompleterServerReady(app, 'cpp')

    assert_that(
        GetDebugInfo(app),
        has_entry(
            'completer',
            has_entries({
                'name':
                'clangd',
                'servers':
                contains(
                    has_entries({
                        'name':
                        'clangd',
                        'is_running':
                        True,
                        'extras':
                        has_item(
                            has_entries({
                                'key':
                                'Project Directory',
                                'value':
                                PathToTestFile('test-include'),
                            }))
                    }))
            })))
예제 #10
0
        def ServerManagement_WipeWorkspace_WithConfig(app):
            StartJavaCompleterServerInDirectory(
                app, PathToTestFile('simple_eclipse_project', 'src'))

            project = PathToTestFile('simple_eclipse_project')
            filepath = PathToTestFile('simple_eclipse_project', 'src', 'com',
                                      'youcompleteme', 'Test.java')

            app.post_json(
                '/run_completer_command',
                BuildRequest(
                    filepath=filepath,
                    filetype='java',
                    command_arguments=['WipeWorkspace', '--with-config'],
                ),
            )

            WaitUntilCompleterServerReady(app, 'java')

            assert_that(
                app.post_json('/debug_info',
                              BuildRequest(filetype='java',
                                           filepath=filepath)).json,
                CompleterProjectDirectoryMatcher(project))