diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cd12e74..1c9c08d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,13 +22,13 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Set up JDK 15 + - name: Set up JDK 17 uses: actions/setup-java@v1 with: - java-version: 15 + java-version: 17 - name: Cache Gradle packages - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} @@ -41,7 +41,7 @@ jobs: run: ./gradlew clean build - name: Upload test report directory - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 if: always() with: name: testDebugStuff @@ -51,19 +51,8 @@ jobs: - name: Run Test Coverage run: ./gradlew jacocoTestReport - - name: Generate JaCoCo Badge - id: jacoco - uses: cicirello/jacoco-badge-generator@v2.1.0 - with: - jacoco-csv-file: build/reports/jacoco/test/jacocoTestReport.csv - - - name: Log coverage percentage - run: | - echo "coverage = ${{ steps.jacoco.outputs.coverage }}" - echo "branch coverage = ${{ steps.jacoco.outputs.branches }}" - - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v4.0.1 - env: + uses: codecov/codecov-action@v4 + with: token: ${{ secrets.CODECOV_TOKEN }} slug: xpathqs/core \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index cbed446..89de9c3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,6 @@ * SOFTWARE. */ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.gradle.api.tasks.testing.logging.TestLogEvent version = "0.1.6" @@ -28,23 +27,23 @@ group = "org.xpathqs" val kotestVersion = "5.8.0" plugins { - kotlin("jvm") version "2.0.0-Beta4" + id("org.jetbrains.kotlin.jvm") version "2.3.0" id("org.jetbrains.dokka") version "1.4.32" `java-library` jacoco `maven-publish` signing id("io.codearte.nexus-staging") version "0.30.0" - id("io.gitlab.arturbosch.detekt").version("1.23.5") - id("info.solidsoft.pitest").version("1.9.0") - id("org.jetbrains.kotlinx.kover") version "0.6.1" + id("io.gitlab.arturbosch.detekt").version("1.23.8") + id("info.solidsoft.pitest").version("1.19.0-rc.2") + id("org.jetbrains.kotlinx.kover") version "0.9.4" } java { withJavadocJar() withSourcesJar() - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } jacoco { @@ -57,13 +56,15 @@ repositories { } detekt { - config = files("$projectDir/detekt.yml") // point to your custom config defining rules to run, overwriting default behavior + config.from( + files("$projectDir/detekt.yml") + ) } dependencies { implementation("io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.30.0") - implementation("org.jetbrains.kotlin:kotlin-reflect:2.0.0-Beta4") - implementation("org.yaml:snakeyaml:1.28") + implementation("org.jetbrains.kotlin:kotlin-reflect:2.3.0") + implementation("org.yaml:snakeyaml:2.0") implementation("net.oneandone.reflections8:reflections8:0.11.7") testImplementation("org.xpathqs:gwt:0.2.5") @@ -142,8 +143,9 @@ tasks.test { } } -tasks.withType { - kotlinOptions.jvmTarget = "11" + +kotlin { + jvmToolchain(17) } tasks.jar { @@ -159,8 +161,8 @@ tasks.jar { tasks.jacocoTestReport { reports { - xml.isEnabled = false - csv.isEnabled = true + xml.required.set(true) + html.required.set(false) } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5b7ec27..c0b6a58 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 XPATH-QS +# Copyright (c) 2025 XPATH-QS # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -22,6 +22,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/kotlin/org/xpathqs/core/reflection/SelectorParser.kt b/src/main/kotlin/org/xpathqs/core/reflection/SelectorParser.kt index fe626b6..209414c 100644 --- a/src/main/kotlin/org/xpathqs/core/reflection/SelectorParser.kt +++ b/src/main/kotlin/org/xpathqs/core/reflection/SelectorParser.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -89,11 +89,11 @@ class SelectorParser( rootObj.children = srf.innerSelectors srf.innerSelectorProps.filter { - it.call(rootObj) !is NullSelector + safeEvaluate(it) !is NullSelector }.forEach { prop -> prop.isAccessible = true - val sel = prop.call(rootObj) as BaseSelector + val sel = safeEvaluate(prop) as BaseSelector val ann = prop.findAnnotation()?.value ?: prop.name setFields( to = sel, @@ -180,4 +180,14 @@ class SelectorParser( to.freeze() } } + + private fun safeEvaluate(prop: KProperty<*>) : Any? { + return runCatching { + prop.call(rootObj) + }.getOrNull() ?: run { + runCatching { + prop.call() + }.getOrNull() + } + } } \ No newline at end of file diff --git a/src/test/kotlin/org/xpathqs/core/reflection/SelectorReflectionFieldsNoScanTest.kt b/src/test/kotlin/org/xpathqs/core/reflection/SelectorReflectionFieldsNoScanTest.kt index 96f5e03..69b5f25 100644 --- a/src/test/kotlin/org/xpathqs/core/reflection/SelectorReflectionFieldsNoScanTest.kt +++ b/src/test/kotlin/org/xpathqs/core/reflection/SelectorReflectionFieldsNoScanTest.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,6 +24,7 @@ package org.xpathqs.core.reflection import io.kotest.core.spec.style.AnnotationSpec import io.kotest.matchers.collections.shouldHaveSize +import org.xpathqs.core.reflection.pages.PageWithNoScan class SelectorReflectionFieldsNoScanTest : AnnotationSpec() { diff --git a/src/test/kotlin/org/xpathqs/core/reflection/SelectorReflectionFieldsTest.kt b/src/test/kotlin/org/xpathqs/core/reflection/SelectorReflectionFieldsTest.kt index 5e49d63..c7120b4 100644 --- a/src/test/kotlin/org/xpathqs/core/reflection/SelectorReflectionFieldsTest.kt +++ b/src/test/kotlin/org/xpathqs/core/reflection/SelectorReflectionFieldsTest.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,6 +24,10 @@ package org.xpathqs.core.reflection import io.kotest.core.spec.style.AnnotationSpec import io.kotest.matchers.collections.shouldContainExactlyInAnyOrder +import org.xpathqs.core.reflection.pages.PagePrivateMember +import org.xpathqs.core.reflection.pages.PageWithBase +import org.xpathqs.core.reflection.pages.PageWithBaseAndInnerGroupObject +import org.xpathqs.core.reflection.pages.PageWithBaseAndInnerObject import org.xpathqs.core.selector.base.BaseSelector import org.xpathqs.core.selector.selector.Selector diff --git a/src/test/kotlin/org/xpathqs/core/reflection/pages/pages.kt b/src/test/kotlin/org/xpathqs/core/reflection/pages/pages.kt index 1312839..6399391 100644 --- a/src/test/kotlin/org/xpathqs/core/reflection/pages/pages.kt +++ b/src/test/kotlin/org/xpathqs/core/reflection/pages/pages.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.xpathqs.core.reflection +package org.xpathqs.core.reflection.pages import org.xpathqs.core.annotations.NoScan import org.xpathqs.core.selector.base.BaseSelector diff --git a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithBaseAndGroupObjectTest.kt b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithBaseAndGroupObjectTest.kt index 89db4ee..b4de213 100644 --- a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithBaseAndGroupObjectTest.kt +++ b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithBaseAndGroupObjectTest.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -26,7 +26,7 @@ package org.xpathqs.core.reflection.parser import io.kotest.core.spec.style.AnnotationSpec import io.kotest.matchers.collections.shouldHaveSize import io.kotest.matchers.shouldBe -import org.xpathqs.core.reflection.PageWithBaseAndInnerGroupObject +import org.xpathqs.core.reflection.pages.PageWithBaseAndInnerGroupObject import org.xpathqs.core.reflection.SelectorParser import org.xpathqs.xpathShouldBe diff --git a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithBaseAndInnerObjectTest.kt b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithBaseAndInnerObjectTest.kt index 8363cef..802adb4 100644 --- a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithBaseAndInnerObjectTest.kt +++ b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithBaseAndInnerObjectTest.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -26,7 +26,7 @@ import io.kotest.assertions.assertSoftly import io.kotest.core.spec.style.AnnotationSpec import io.kotest.matchers.collections.shouldHaveSize import io.kotest.matchers.shouldBe -import org.xpathqs.core.reflection.PageWithBaseAndInnerObject +import org.xpathqs.core.reflection.pages.PageWithBaseAndInnerObject import org.xpathqs.core.reflection.SelectorParser import org.xpathqs.core.selector.extensions.core.get import org.xpathqs.xpathShouldBe diff --git a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithClassArgBlockTest.kt b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithClassArgBlockTest.kt index 8741c5d..e177550 100644 --- a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithClassArgBlockTest.kt +++ b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithClassArgBlockTest.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,8 +24,8 @@ package org.xpathqs.core.reflection.parser import io.kotest.assertions.assertSoftly import io.kotest.core.spec.style.AnnotationSpec -import org.xpathqs.core.reflection.PageWithBlockArgMembers -import org.xpathqs.core.reflection.PageWithBlockMembers +import org.xpathqs.core.reflection.pages.PageWithBlockArgMembers +import org.xpathqs.core.reflection.pages.PageWithBlockMembers import org.xpathqs.core.reflection.SelectorParser import org.xpathqs.core.selector.extensions.core.get import org.xpathqs.nameShouldBe diff --git a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithClassBlockTest.kt b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithClassBlockTest.kt index aa633f7..00cc02b 100644 --- a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithClassBlockTest.kt +++ b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithClassBlockTest.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,7 +25,7 @@ package org.xpathqs.core.reflection.parser import io.kotest.assertions.assertSoftly import io.kotest.core.spec.style.AnnotationSpec import io.kotest.matchers.shouldNotBe -import org.xpathqs.core.reflection.PageWithBlockMembers +import org.xpathqs.core.reflection.pages.PageWithBlockMembers import org.xpathqs.core.reflection.SelectorParser import org.xpathqs.core.selector.extensions.core.get import org.xpathqs.nameShouldBe diff --git a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithInnerObjectClassArgTest.kt b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithInnerObjectClassArgTest.kt index 48449d7..e845408 100644 --- a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithInnerObjectClassArgTest.kt +++ b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithInnerObjectClassArgTest.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -26,6 +26,7 @@ import io.kotest.assertions.assertSoftly import io.kotest.core.spec.style.AnnotationSpec import io.kotest.matchers.collections.shouldHaveSize import org.xpathqs.core.reflection.* +import org.xpathqs.core.reflection.pages.PageWithInnerObjectClassArg import org.xpathqs.core.selector.extensions.core.get import org.xpathqs.nameShouldBe import org.xpathqs.xpathShouldBe diff --git a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithNoScanTest.kt b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithNoScanTest.kt index 07f4ff6..e6a58bc 100644 --- a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithNoScanTest.kt +++ b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithNoScanTest.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,7 +25,7 @@ package org.xpathqs.core.reflection.parser import io.kotest.core.spec.style.AnnotationSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.string.shouldBeEmpty -import org.xpathqs.core.reflection.PageWithNoScan +import org.xpathqs.core.reflection.pages.PageWithNoScan import org.xpathqs.core.reflection.SelectorParser import org.xpathqs.xpathShouldBe diff --git a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithoutBaseForInhBlockTest.kt b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithoutBaseForInhBlockTest.kt index f4b73cd..3cebcca 100644 --- a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithoutBaseForInhBlockTest.kt +++ b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithoutBaseForInhBlockTest.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,7 +23,7 @@ package org.xpathqs.core.reflection.parser import io.kotest.core.spec.style.AnnotationSpec -import org.xpathqs.core.reflection.PageWithInhGroup +import org.xpathqs.core.reflection.pages.PageWithInhGroup import org.xpathqs.core.reflection.SelectorParser import org.xpathqs.xpathShouldBe diff --git a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithoutBaseTest.kt b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithoutBaseTest.kt index 27a1d9e..5d53b63 100644 --- a/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithoutBaseTest.kt +++ b/src/test/kotlin/org/xpathqs/core/reflection/parser/ObjectWithoutBaseTest.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,7 +23,7 @@ package org.xpathqs.core.reflection.parser import io.kotest.core.spec.style.AnnotationSpec -import org.xpathqs.core.reflection.PageNoBase +import org.xpathqs.core.reflection.pages.PageNoBase import org.xpathqs.core.reflection.SelectorParser import org.xpathqs.xpathShouldBe diff --git a/src/test/kotlin/org/xpathqs/core/selector/block/BlockSelectorCloneTest.kt b/src/test/kotlin/org/xpathqs/core/selector/block/BlockSelectorCloneTest.kt index 4306bac..6a9c45e 100644 --- a/src/test/kotlin/org/xpathqs/core/selector/block/BlockSelectorCloneTest.kt +++ b/src/test/kotlin/org/xpathqs/core/selector/block/BlockSelectorCloneTest.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,7 +24,7 @@ package org.xpathqs.core.selector.block import io.kotest.core.spec.style.AnnotationSpec import io.kotest.matchers.types.shouldNotBeSameInstanceAs -import org.xpathqs.core.reflection.SomeHolder +import org.xpathqs.core.reflection.pages.SomeHolder import org.xpathqs.core.reflection.parse import org.xpathqs.core.selector.base.BaseSelector import org.xpathqs.core.selector.extensions.core.get diff --git a/src/test/kotlin/org/xpathqs/core/selector/extensions/PageObjectCloneGroupTests.kt b/src/test/kotlin/org/xpathqs/core/selector/extensions/PageObjectCloneGroupTests.kt index fd49751..e8714ed 100644 --- a/src/test/kotlin/org/xpathqs/core/selector/extensions/PageObjectCloneGroupTests.kt +++ b/src/test/kotlin/org/xpathqs/core/selector/extensions/PageObjectCloneGroupTests.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -28,7 +28,7 @@ import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.shouldBe import io.kotest.matchers.types.shouldBeSameInstanceAs import io.kotest.matchers.types.shouldNotBeSameInstanceAs -import org.xpathqs.core.reflection.PageWithGroupBase +import org.xpathqs.core.reflection.pages.PageWithGroupBase import org.xpathqs.core.reflection.SelectorParser import org.xpathqs.core.selector.block.deepClone diff --git a/src/test/kotlin/org/xpathqs/core/selector/extensions/PageObjectCloneTests.kt b/src/test/kotlin/org/xpathqs/core/selector/extensions/PageObjectCloneTests.kt index eeca57b..70b6782 100644 --- a/src/test/kotlin/org/xpathqs/core/selector/extensions/PageObjectCloneTests.kt +++ b/src/test/kotlin/org/xpathqs/core/selector/extensions/PageObjectCloneTests.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -27,7 +27,7 @@ import io.kotest.core.spec.style.AnnotationSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.types.shouldBeSameInstanceAs import io.kotest.matchers.types.shouldNotBeSameInstanceAs -import org.xpathqs.core.reflection.PageWithBase +import org.xpathqs.core.reflection.pages.PageWithBase import org.xpathqs.core.reflection.SelectorParser import org.xpathqs.core.selector.block.deepClone diff --git a/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorCloneTests.kt b/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorCloneTests.kt index 73428c9..eefc442 100644 --- a/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorCloneTests.kt +++ b/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorCloneTests.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,8 +24,8 @@ package org.xpathqs.core.selector.extensions import io.kotest.core.spec.style.AnnotationSpec import io.kotest.matchers.types.shouldNotBeSameInstanceAs -import org.xpathqs.core.reflection.PageWithBaseWithChain -import org.xpathqs.core.reflection.PageWithBaseWithChainXpath +import org.xpathqs.core.reflection.pages.PageWithBaseWithChain +import org.xpathqs.core.reflection.pages.PageWithBaseWithChainXpath import org.xpathqs.core.reflection.SelectorParser import org.xpathqs.core.reflection.freeze import org.xpathqs.core.selector.selector.Selector diff --git a/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorGetExtensionTests.kt b/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorGetExtensionTests.kt index 2306d20..63feda0 100644 --- a/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorGetExtensionTests.kt +++ b/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorGetExtensionTests.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,7 +24,7 @@ package org.xpathqs.core.selector.extensions import io.kotest.core.spec.style.AnnotationSpec import io.kotest.matchers.shouldBe -import org.xpathqs.core.reflection.PageWithBase +import org.xpathqs.core.reflection.pages.PageWithBase import org.xpathqs.core.reflection.SelectorParser class SelectorGetExtensionTests : AnnotationSpec() { diff --git a/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorObjectModificationTests.kt b/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorObjectModificationTests.kt index c600b11..5a0a152 100644 --- a/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorObjectModificationTests.kt +++ b/src/test/kotlin/org/xpathqs/core/selector/extensions/SelectorObjectModificationTests.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 XPATH-QS + * Copyright (c) 2025 XPATH-QS * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,7 +24,7 @@ package org.xpathqs.core.selector.extensions import io.kotest.assertions.assertSoftly import io.kotest.core.spec.style.AnnotationSpec -import org.xpathqs.core.reflection.PageWithBase +import org.xpathqs.core.reflection.pages.PageWithBase import org.xpathqs.core.reflection.SelectorParser import org.xpathqs.core.reflection.parse import org.xpathqs.core.selector.block.Block