diff --git a/runtime/gdev/tests/integration_tests.rs b/runtime/gdev/tests/integration_tests.rs
index 34d3150dff821b7f137e74652c172a7d42c6bbee..82c1b846222c69c9496ae615e06b7ffa9113726d 100644
--- a/runtime/gdev/tests/integration_tests.rs
+++ b/runtime/gdev/tests/integration_tests.rs
@@ -1516,6 +1516,36 @@ fn test_link_account() {
         })
 }
 
+/// test change owner key
+#[test]
+fn test_change_owner_key_validator_keys_set() {
+    ExtBuilder::new(1, 3, 4).build().execute_with(|| {
+        let genesis_hash = System::block_hash(0);
+        let bob = AccountKeyring::Bob.to_account_id();
+        let ferdie = AccountKeyring::Ferdie.to_account_id();
+        let payload = (b"icok", genesis_hash, 2u32, bob.clone()).encode();
+        let signature = AccountKeyring::Bob.sign(&payload);
+
+        // Bob is not an online validator, but his identity/owner_key is already associated.
+        // He should not be able to change its owner_key.
+        assert_ok!(AuthorityMembers::set_session_keys(
+            RuntimeOrigin::signed(AccountKeyring::Bob.to_account_id()),
+            create_dummy_session_keys()
+        ));
+        assert!(!pallet_authority_members::OnlineAuthorities::<Runtime>::get().contains(&2));
+        assert!(pallet_authority_members::Members::<Runtime>::get(2).is_some());
+
+        assert_noop!(
+            Identity::change_owner_key(
+                RuntimeOrigin::signed(bob.clone()),
+                ferdie.clone(),
+                signature.into()
+            ),
+            pallet_identity::Error::<gdev_runtime::Runtime>::OwnerKeyUsedAsValidator
+        );
+    })
+}
+
 /// test change owner key
 #[test]
 fn test_change_owner_key_validator_online() {